通过使用正则表达式匹配在两个字符串之间选择文本

怪物

我知道也有类似的文章来获取两个字符串之间的文本,但是即使经过多次尝试,我也无法弄清楚我的代码出了什么问题,所以我决定发布一个问题。我尝试使用正则表达式的文本数据如下所示:

* * *

  

level a20. heading1 random

  

paragraph 1
paragraph 2


paragraph 3
  

* * *

paragraph 4

paragraph 5

* * *

  

level b22. random-heading2

  

someparagraphs...

我的目标是使所有文字都在a20级之间。标题1随机达到* * * b22级。随机标题2。我可以使用找到文字的开头

regex = r"^\* \* \*[ \t\n\r\f]+level \S+ heading random"

但是当我尝试添加其余的正则表达式时,代码无法抓取文本

regex_full = r"^\* \* \*[ \t\n\r\f]+level \S+ heading random(.*?)\* \* \*[ \t\n\r\f]+level \S+ [a-z]+"
re.finditer(regex_full, above_text_data, re.MULTILINE | re.DOTALL)

因为我确信“标题随机”,但是在不同的文档中其他标题(“ random-heading2”)发生了变化,所以它甚至可以是一个单词或两个作品。有人可以用regex_full表达式突出显示什么错误,以获取a20级之间的所有文本。标题1随机达到* * * b22级。randomheading2吗?在regex101.com上,该错误显示为“您的正则表达式与主题字符串不匹配”。

* * *

  

level a20. heading1 random


TEXT OF INTEREST
* * *
  

level b22. random-heading2
用户13843220

可能是这个

r"\* \* \*\s*level a20\. heading1 random\s*(.*?)\s*\* \* \*\s*level b22\. random-heading2"

捕获组1包含修剪的内容。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用正则表达式匹配两个字符串之间的文本

正则表达式匹配两个字符之间的字符串

两个字符串python之间的正则表达式文本

两个字符串之间的正则表达式文本

正则表达式-在某行的两个字符串之间选择文本

正则表达式:匹配两个字符串之间的每个字符

使用正则表达式查找两个字符串之间的多个匹配项

使用正则表达式查找两个字符串之间的所有匹配项

正则表达式,以匹配其他两个字符串之间的字符串

正则表达式-匹配两个字符串之间的字符串

正则表达式匹配两个字符串之间多次出现的字符串

Bash正则表达式,两个字符串之间的匹配字符串

如何在两个字符串之间使用正则表达式匹配并查找原始文件,并获取两个字符串之间的整个字符串?

正则表达式匹配无法在两个字符之间找到文本

正则表达式匹配两个字符串之间的所有字符

正则表达式:匹配两个字符串之间的所有字符

正则表达式匹配和替换字符串之间的两个字符

正则表达式忽略两个字符串之间的字符?

正则表达式查找两个字符之间的字符串

使用正则表达式提取两个字符串之间的字符串

使用正则表达式获取两个字符串之间的子字符串

正则表达式只选择两个字符串之间的特定字符

正则表达式模式匹配并获得两个字符串

正则表达式匹配两个字符串之间的无限重复模式

正则表达式用于两个字符串之间的最长匹配序列

正则表达式匹配逗号分隔、多行和两个字符串之间的单词

正则表达式:计算两个字符串之间的差异

vbscript正则表达式,在两个字符串之间替换

多行正则表达式在两个字符串之间读取