使用Python的新正则表达式模块创建模糊匹配异常

时间:2013-02-04 17:19:03

标签: python regex pypi-regex

我正在测试新的python regex模块,该模块允许模糊字符串匹配,并且到目前为止已经对其功能印象深刻。但是,我在使用模糊匹配制作某些异常时遇到了麻烦。以下是一个例子。我希望ST LOUIS以及编辑距离为1的ST LOUIS的所有变体与ref匹配。但是,我想对此规则设置一个例外:编辑不能包含最左边字符左侧的插入,其中包含字母NSE或{{ 1}}。通过以下示例,我希望输入1 - 3匹配ref,输入4则失败。但是,使用以下W会使其与所有四个输入匹配。熟悉新正则表达式模块的人是否知道可能的解决方法?

ref

1 个答案:

答案 0 :(得分:3)

尝试使用否定前瞻:

(?![NEW]|SS)(ST LOUIS){e<=1}

(ST LOUIS){e<=1}匹配符合其上的模糊条件的字符串。 您希望阻止它以[NSEW]开头。对你来说,负向前瞻为你做(?![NSEW])。 但是您所需的字符串已经以S开头,您只想排除以S开头添加到字符串开头的字符串。 这样的字符串将以SS开头,这就是为什么它被添加到负向前瞻中。

请注意,如果您允许错误&gt; 1,这可能不会按预期工作。