python re搜索语法来识别分布在多行上的文本模式

标签 python regex

我最近开始使用 python 和正则表达式。作为第一个项目,我想读出一个 pdf 文件,过滤特定的文本数据并在 Excel 工作表中重新组合。因此我遇到了正则表达式问题:

pdf文件输出格式:

...

The text of this line is not always here\n

The community is here to help you with specific coding, algorithm, or language problems.\n

Summarize\n

ask\n

The text of this line is not always here\n

...

我想搜索“ask”,通过“具体编码”和“\n总结\n”找到它。 “ask”下面的文本不能用于可靠地找到它,因为它总是不同的。

我尝试使用 (?=...) 和 (?<=...) 来实现此目的,但我找不到合适的解决方案。

也许我做错了什么。有人有想法吗?

最佳答案

如果您想查找ask,您可以使用捕获组而不是环视。您可以匹配特定编码,后跟该行的其余部分.*

如果后面有空行和换行符,可以使用 \s* 来匹配它们。

然后匹配换行符,后跟Summarize

再次匹配空行和换行符,并在捕获组中捕获ask

\bspecific coding\b.*\s*\r?\nSummarize\s*\r?\n(ask)\b

Regex demo

关于python re搜索语法来识别分布在多行上的文本模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59518422/

相关文章:

python - 在 Python 中删除单个和多个换行符,只留下双换行符

sql - 选择配置单元中的下一个非空字段

python - 同时过滤两个列表

python - 安装 ROS 时 Cmake 未检测到 boost-python

javascript - 如何编写正则表达式来验证 4 个字符的字符串是否为非零二进制数?

javascript - 简化 Javascript 中的 text.replace()

python - Flask 多对多循环通过 id 将数据插入表不工作

python - 没有名为资源的模块(安装 Flask-Mail)

python - Pandas :从每周到每天重新采样,并带有偏移量

java - 以 0.5 为增量检查 1-10 的正则表达式?