我在询问Python中的部分正则表达式匹配。
例如:
如果您有一个字符串:
string = 'foo bar cat dog elephant barn yarn p n a'
和一个正则表达式:
pattern = r'foo bar cat barn yard p n a f'
以下是正确的:
re.match(pattern, string)
会回来的None
。re.search(pattern, string)
也会回来 None
尽管我们都可以看到模式的第一部分与字符串的第一部分匹配。
因此,除了在字符串中搜索整个模式之外,还有没有办法查看字符串中与模式匹配的百分比?
不适用于正则表达式。
from difflib import SequenceMatcher
SequenceMatcher(None, string, pattern).ratio()
# => 0.7536231884057971
您甚至可以匹配单词而不是字符:
SequenceMatcher(None, string.split(), pattern.split()).ratio()
# => 0.7368421052631579
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句