python - 匹配部分正确关键字的正则表达式
问题描述
我想将字符串与关键字匹配。关键字可能不完全匹配,最大不匹配字符设置为 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)
解决方案
您可以使用正则表达式库并使用模糊匹配(适合您的用例),指定最大不匹配,例如:
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))
当错误计数达到时,它将返回None
,否则返回一个包含fuzzy_counts
元组的对象,它为您提供替换、插入、删除的总数。它还包含一个fuzzy_changes
元组,其中包含每个替换、插入、删除完成的位置。
推荐阅读
- reactjs - 未找到模块 - 在 NextJS 中导入 svg
- c# - 与提示输入凭据的 Dynamics 365 Online Web API 集成
- azure-devops - Power BI 测试报告:没有错误的测试运行失败
- angular - Formio:如何向 html 元素添加工具提示?
- mysql - Laravel 允许 Model::create() 上的空日期但不允许 Model->update()
- scala - 列表的类型别名在擦除后导致相同的类型
- c# - SQL、UserControla 和 FlowLayoutPanel
- python - 在迁移学习 ResNet-50 期间如何解决这个问题?
- javascript - Vue 模板中的函数调用测试仅在使用括号调用函数时通过
- django - 如何生成多个多部分预签名的帖子 url 以在 boto3 中上传文件