近似正则表达式错误计数行为

时间:2015-07-01 15:56:51

标签: python regex

我正在使用regex package来处理Python中的近似正则表达式。我不明白在匹配中计算错误时我看到的行为。

如果我使用以下正则表达式并允许错误:

>>> rex = '(HOUSE OF REPRESENTATIVES){e}'

我得到了我期望的行为,其中找到了20个错误的匹配。 20个错误是由20个小写字母引起的:

>>> regex.match(rex, 'House of Representatives')

<regex.Match object; span=(0, 24), match='House of Representatives', fuzzy_counts=(20, 0, 0)>

当我尝试类似于增加复杂性的类似内容时,我得到的结果对我来说毫无意义。

我试图匹配看起来像这样的字符串:“1939年1月23日,代表的房子\ nWEDNESDAY \ n”。

>>> rex = '(HOUSE OF REPRESENTATIVES\n[A-Z]{3,6}DAY, [A-Z]{3,11} [0-9]{1,2}, [0-9]{4}\n){e}'

当我尝试使用它时,我得到一个我无法理解的错误号。

>>> h1 = 'HOUSE OF REPRESENTATIVES\nWEDNESDAY, JANUARY 4, 1939\n'
>>> regex.match(rex, h1)
<regex.Match object; span=(0, 52), match='HOUSE OF REPRESENTATIVES\nWEDNESDAY, JANUARY 4, 1939\n', fuzzy_counts=(7, 0, 2)>

当我期待0时,我得到一个匹配9个模糊错误。什么给出了?

注意:当我使用BESTMATCH标志时,我会收到8个错误。

1 个答案:

答案 0 :(得分:0)

这个正则表达式应该与你想要的东西相匹配:

(HOUSE OF REPRESENTATIVES)\\n[A-Z]{3,6}DAY,\s[A-Z]{3,11}\s[0-9]{1,2},\s[0-9]{4}\\n

https://regex101.com/r/sQ5hQ2/3

相关问题