python - python中的正则表达式匹配

标签 python regex

我正在尝试从文件中提取文本的特定部分。 我无法使正则表达式匹配尽可能少的字符。

这是一个示例文本文件。

UNIQUE
sdkjbskdfb....
UNIQUE
lnasdljnkjn......
UNIQUE
*Text from here is needed*
UNIQUE2
*Text from here is needed*
UNIQUE

我最大的努力就是这个。 “UNIQUE(.\*?)UNIQUE2(.\*?)UNIQUE”

不幸的是,这与整个内容匹配,因为它使用第一个 UNIQUE 值而不是第三个值。

最佳答案

您需要负向前瞻:

UNIQUE((?:(?!UNIQUE).)*?)UNIQUE2(.*?)UNIQUE

Regular expression visualization

Debuggex Demo

这就是说,在您点击 UNIQUE2 之前,先找到 UNIQUE 后跟一些不包含 UNIQUE 的字符串,等等。

如果您需要澄清,请告诉我。

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

相关文章:

python - Sublimelinter 4.0.2 新更新无法再找到我的任何 linter

python - "ModuleNotFoundError"。如何让我的 python 识别模块的安装位置?

javascript - Django + js 框架

PHP从字符串中提取数字 block 时如何避免混合字母数字

regex - Nutch MalformedURLException导致爬网过程终止

用于清理字符串值的 Javascript 正则表达式

javascript - 如何将字符串中的所有表情符号替换为Unicode JS

Python正则表达式立即用组名称替换组

python - 如何合并存在于两台不同计算机中的两个 mongoDB 数据库?

java - Python 套接字从 Java PrintWriter 套接字接收不完整的消息