python - Python 3.2 中的部分正则表达式匹配

标签 python regex python-3.x

正则表达式回答是或否问题 - 字符串是否与模式匹配。

我想将否分为两类:

  • 作为有效字符串前缀的无效字符串
  • 不是有效前缀的无效字符串

这是一个示例(正则表达式 01+2):

  • 012有效

  • 12 无效;它不是有效字符串的前缀

  • 01 无效;它是一个有效字符串的前缀:012

Java can do this.

可以这样做吗?如果没有,是否有图书馆可以做出这种区分?

最佳答案

我支持正则表达式的建议。该模块简直太棒了。

下面是一个使用正则表达式进行模糊匹配的例子:

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/

相关文章:

python - 如何将摘要的前 n 位转换为整数?

python - 有什么办法可以延长请求超时限制?

python - 有没有一种Python方法可以减少卷积神经网络的训练时间?

python - 在 Python 中测试实际相等性

python - 是否可以将 Pandas 日期时间转换为工作日/周末和季节?

数字后跟点 (.) 的正则表达式

python - 如何在 python 正则表达式中获取可能在字符串中相同位置开始的所有重叠匹配项?

regex - Oracle正则表达式匹配所有单词忽略顺序

python - 如何将 Pandas DataFrame 转换为 Pandas ML ModelFrame?

python - 使用 lambda 对字典的元素进行排序