剛剛遇到一行強制用戶輸入到對話框字段的代碼。不管輸入的唯一IP格式將在年底如被允許:在Python中自定義驗證器的正則表達式
123.456.789.100
regexIP=QtCore.QRegExp("\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}")
我想編寫lineedit驗證一個正則表達式,將自動替換所有的空格,逗號,句號,短劃線,小寫字母,美元符號(除字母和數字之外的所有字符),下劃線。 我也想大寫前三個字母,然後在它們後面插入一個下劃線,不管用戶輸入什麼內容。
例如,如果一個用戶類型:
this is a beautiful day 77
正則表達式驗證器會自動將其更改爲:
THI_Sis_a_beatiful_day_77
她是代碼的PyQt的部分看起來像:
my_regex = QtCore.QRegExp("\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}")
my_QLineEdit = QtGui.QLineEdit()
my_validator = QtGui.QRegExpValidator(my_regex, my_QLineEdit)
my_QLineEdit.setValidator(my_validator)
再一次,上面的代碼只是一個例子。我要的是寫一個正則表達式來把它放在括號內:
my_regex = QtCore.QRegExp(my_regex_expression_goes_here)
這my_regex表達式將強制該用戶從未進入white_space,句號,逗號,美元符號到文本字段(lineedit)。理想情況下,我想先大寫前三個字母,然後加上下劃線。但這不再是一個大問題。讓我們專注於如何實現一些基本的正則表達式,以便用戶不能放置空格,減號,美元符號等。只有字母和數字是允許的......
你有一些代碼可以顯示嗎? – Toto
以下是您可以用於第一部分的RegEx,以匹配您想要的:'[^ a-zA-Z0-9] +?'。然後用'_'替換。 – tenub
你確定你想要的結果不是:'THI_s_is_a_beautiful_day_77'而不是你寫的東西嗎? –