我想搜索一个文本块并匹配以python中的特定字符开头的行 - 但是想要在该规则被破坏时立即停止。
例如,在以下文本中:(以星号开头)
*指向一个
*指向两个
**指向两个人。
*最后一点三
但是这里有一段文字
*四
我想在遇到非项目符号文本后立即停止搜索。即搜索/查找应该只返回文本到" *最后一点三"。
我一直在尝试各种正则表达式,但没有运气。我到目前为止最接近的是
R'(^ [*(**)] *。)'
任何帮助将不胜感激。
由于
TJR
答案 0 :(得分:1)
答案 1 :(得分:0)
答案 2 :(得分:0)
如果目标只是匹配条件不正确的流中的第一个点,那么表达这个的最简洁方式似乎是
>>> pattern = r'^(?s)\*[^\n]*(?:\n+\*[^\n]*)*'
>>> target = """* point one
...
... * point two
...
... ** point two.one
...
... * last point three
...
... But here is a text in between
...
... * four
... """
>>> m=re.search(pattern,target)
>>> m.group(0)
'* point one\n\n* point two\n\n** point two.one\n\n* last point three'