python - 替代python中的所有格量词

标签 python regex quantifiers

我正在尝试匹配字符串 Article 后跟一个数字(一个或多个数字)的所有出现,不是 后跟一个左括号。在 Sublime Text 中,我使用以下正则表达式:

Article\s[0-9]++(?!\()

搜索以下字符串:

Article 29
Article 30(1)

这与 Article 30(1) 不匹配(如我所料),但 Article 29Article 1

尝试在 Python (3) 中使用

import re
article_list = re.findall(r'Article\s[0-9]++(?!\()', "Article 30(1)")

我收到以下错误,因为我正在使用 Python 正则表达式不支持的(嵌套)所有格量词。有什么方法可以匹配我想要(不)在 Python 中匹配的内容吗?

最佳答案

您还可以使用 (?=(...))\1 围绕您要匹配的内容模拟原子组 (?>...) > 解决方法:

(?=(Article\s[0-9]+))\1(?!\()

(前瞻自然地表现得像一个原子组,您所需要的只是一个捕获和一个反向引用)

关于python - 替代python中的所有格量词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44458122/

相关文章:

Python 的文本转语音转换失败

python - 在 Cantera react 器中使用生物质热解动力学

php - 从字符串中删除无用的段落标签

javascript - 为什么我的正则表达式捕获组在匹配多个部分时只捕获字符串的最后一部分?

python - 从 HTTP 响应获取 JSON?

python - scipy 最小化 SLSQP - 'Singular matrix C in LSQ subproblem'

javascript - 匹配 yyyy-MM-dd hh :mm:ss format 的日期时间正则表达式模式

php - 从 Drupal 设置文件中获取数据库名称的正则表达式?

java - 在 Java 正则表达式中仅打印三位数字的量词

regex - "Quantifier quantifies nothing"但我从未要求量词