我知道也有类似的文章来获取两个字符串之间的文本,但是即使经过多次尝试,我也无法弄清楚我的代码出了什么问题,所以我决定发布一个问题。我尝试使用正则表达式的文本数据如下所示:
* * *
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
可能是这个
r"\* \* \*\s*level a20\. heading1 random\s*(.*?)\s*\* \* \*\s*level b22\. random-heading2"
捕获组1包含修剪的内容。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句