python - 正则表达式负前瞻(python)
问题描述
我尝试了多种方法并阅读了当前可用的博客,但没有运气
我只想检测
1. pavneet
2. pavnet
但不是
1. pavneet's name
2. pavnet's name
3. pavneet name
4. pavnet's name
(即使在 's 之后也想将名称添加为 -ve lookahead)
到目前为止,我已经尝试过这个https://regex101.com/r/8SUCMQ/1
(pavneet|pavne{1,2}t)\'?s?(?!\ *name)
解决方案
您可以将其's
放在前瞻中并使其成为可选。
你也可以(pavneet|pavne{1,2}t)
写成pavnee?t
\bpavnee?t(?!(?:'s)? name\b)
\bpavnee?t
防止部分匹配、匹配pavnet
或pavneet
(?!
负前瞻(?:'s)?
可选匹配's
和空格name\b
匹配name
和单词边界
)
关闭前瞻
推荐阅读
- azure - Whatsapp 作为使用 Clickatell 的 Microsoft Bot Framework 的渠道
- python - 如何在 pyMongo 中使用 allowDiskUse 选项?
- drupal-7 - Drupal7:如果未登录,某些主菜单链接不显示
- c# - 数组创建必须具有数组大小或 C# 中的数组初始化器
- python - 使用 scikit learn 进行分类
- angular - Angular 框架安全问题
- linux - 在 Windows 7 上使用 Qt Creater 时可在 Linux 上执行
- python - ImportError: No module named psycopg2.extensions 在 Cloud DataFlow 上运行我的代码时
- python - Weasy Print 的 Unicode 解码
- httprequest - 检查服务中的 HTTP 状态 - Angular6