我無法將RegEx表達式轉換爲python。我知道'(\\d+)'
是單個整數的表達式,但我無法弄清楚如何獲得[2-9]的整數。Python正則表達式問題
正則表達式表達式如下:
[2-9][p-z][a-h][2-9][a-z]*[p-z][2-9][p-z][2-9][p-z]
這是我目前的表現,但它產生的誤報,因爲它不夠具體:
re1='(\\d+)' # Integer Number 1 re2='([a-z])' # Any Single Word Character (Not Whitespace) 1 re3='([a-z])' # Any Single Word Character (Not Whitespace) 2 re4='(\\d+)' # Integer Number 2 re5='((?:[a-z][a-z]+))' # Word 1 re6='(\\d+)' # Integer Number 3 re7='([a-z])' # Any Single Word Character (Not Whitespace) 3 re8='(.)' # Any Single Character 1 re9='([a-z])' # Any Single Word Character (Not Whitespace) 4
## Regex search for passcodes ## Thanks to Pierluigi Failla
rg = re.compile(re1+re2+re3+re4+re5+re6+re7+re8+re9,re.IGNORECASE|re.DOTALL)
m = rg.search(txt)
if m:
int1=m.group(1)
w1=m.group(2)
w2=m.group(3)
int2=m.group(4)
word1=m.group(5)
int3=m.group(6)
w3=m.group(7)
c1=m.group(8)
w4=m.group(9)
txt2='"'+int1+w1+w2+int2+word1+int3+w3+c1+w4+'"'
return [txt2]
但是'[2-9]'是匹配的整數,它是正確的2- 9。那麼你首先想要匹配什麼?什麼是你得到的誤報?什麼是你匹配的字符串的例子? – migg
這個問題很不清楚。第一個expr和下面的代碼不匹配。 – dansalmo
你想使用'r'''原始字符串來避免所有加倍的'\\',並且有一個're.VERBOSE'模式來使寫入可讀的表達式比連接9個獨立的字符串更容易。 –