我想比較字符串A
與正則表達式R
。蟒蛇difflib與正則表達式
A = u'Hi my friend, my name is Julio'
R = r'Hi\s+my\s+friend,\s+my\s+name\s+is([A-Za-z]+)'
在這個時候,我可以很容易地知道,如果語法是好感謝re.match
和re.search
。現在我想在比賽不起作用的時候研究A和B之間的區別。
我的第一種情況很簡單。我用(.+)
替換了正則表達式([A-Za-z]+)
,以知道問題是否僅在正則表達式組匹配中。在這種情況下,我可以很容易地提出這個問題,說明字符串語法對於爲該名稱定義的組是好的。
現在在步驟1和步驟2失敗的情況下,我想做一個差異像HTML diff
,但用正則表達式來識別正則表達式失敗的位置。
我研究了difflib
和find_longest_match
函數,但它似乎只對每個字符的字符而不是子字符串。
您是否有任何想法/建議來識別基於正則表達式比較的差異,並可能計算測量相似度的比率?
做谷歌搜索你需要一個引擎,將做parthial匹配,或者只是使用級聯optioal結構。如:(\ s +(我的(\ s +(朋友(,(\ s +(my(\ s +(name(\ s +(is([A-Za-z] +)?)?)?)?)? )?)?)?)?)?)?)?' – sln 2014-10-07 16:31:51