python - 匹配部分正确关键字的正则表达式

标签 python regex

我想将字符串与关键字匹配。关键字可能不完全匹配,最大不匹配字符设置为2。

如何使用正则表达式来实现?

谢谢。

例子如下:

string                     partially matched 'abc technology.com'?
apc technology.om                       yes(wrong p and miss c)
abctechnologycom                        yes(miss space and dot)
abc technolog.con                       yes(miss y and wrong n)
abtechnology.com                        yes(miss c and space)
abc technology.c                        yes(miss o and m)
abtechnology.co                         no(miss c, space and m)
abc technology.                         no(miss com)
abctechnology.c                         no(mis space and om)

最佳答案

您可以使用 regex库并使用模糊匹配(适合您的用例),指定不匹配的最大值,例如:

import regex
from pprint import pprint

matcher = regex.compile(r'(abc technology\.com){e<3}')

tests = [
  "apc technology.om",
  "abctechnologycom",
  "abc technolog.con",
  "abtechnology.com",
  "abc technology.c",
  "abtechnology.co",
  "abc technology.",
  "abctechnology.c",
]

for test in tests:
  pprint(matcher.match(test))

Online demo here

当命中错误计数时,它将返回None,否则返回一个包含fuzzy_counts元组的对象,它给出了替换、插入、删除的总数.它还包含一个 fuzzy_changes 元组,其中包含每个替换、插入、删除完成的位置。

关于python - 匹配部分正确关键字的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50872449/

相关文章:

python - 列表仅存储最后一次迭代

python - 在 Kivy 中将滚动条添加到 Boxlayout

Python 无法在非持久性属性上设置属性

regex - Lua文本解析、空格处理

javascript - 如何从单词字符中清除字符串,Javascript

python - Unicode 字符是盒子

python - 如何将元组列表转换为 pandas 数据框,以便每个元组的第一个值代表一列?

regex - 如何将所有正则表达式匹配项放入字符串列表

c++ - 在不删除的情况下将字符串拆分为具有多个分隔符的多个字符串?

javascript - url 的正则表达式