我想比较字符串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