正则表达式回答是或否问题 - 字符串是否与模式匹配。
我想将否分为两类:
- 作为有效字符串前缀的无效字符串
- 不是有效前缀的无效字符串
这是一个示例(正则表达式 01+2
):
012
有效12
无效;它不是有效字符串的前缀01
无效;它是一个有效字符串的前缀:012
可以
这样做吗?如果没有,是否有图书馆可以做出这种区分?
最佳答案
我支持正则表达式的建议。该模块简直太棒了。
下面是一个使用正则表达式进行模糊匹配的例子:
import regex
# traditional matching - three digits
r = '(?:\d\d\d)'
print regex.findall(r, '1xx22yy333zz')
## ['333']
# fuzzy matching - three digits, allow at most 2 deletions
r = '(?:\d\d\d){d<3}'
print regex.findall(r, '1xx22yy333zz')
## ['1', '22', '333']
{d<3}
部分基本上说“如果我们向其中添加一个或两个字符,那将是一个匹配项” - 与您问题中的第 3 点相同。
参见 http://pypi.python.org/pypi/regex了解更多信息(查找“近似“模糊”匹配”)。
关于python - Python 3.2 中的部分正则表达式匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10032788/