匹配新线

2024-10-04 03:16:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下regexp:

pattern = re.compile(r"HESAID:|SHESAID:")

它工作正常。我用它来拆分多个分隔符,如下所示:

result = pattern.split(content)

我想补充的是验证,这样分裂就不会发生,除非他说:或她说:放在新行上。这不起作用:

pattern = re.compile(r"\nHESAID:\n|\nSHESAID:\n")

请帮忙。你知道吗


Tags: reresultcontentpatternsplitregexpcompile分隔符
1条回答
网友
1楼 · 发布于 2024-10-04 03:16:48

如果你详细说明它究竟是如何不起作用的,那会很有帮助,但我猜问题是它与HESAID/SHESAID的连续行不匹配。您可以通过使用行首和行尾锚定来解决这个问题,而不是在regex中实际放置\n

pattern = re.compile(r'^HESAID:$|^SHESAID:$', re.MULTILINE)

re.MULTILINE标志是必需的,以便^$在行的开始和结束处匹配,而不仅仅是字符串的开始和结束。你知道吗

我可能会如下重写regex,?之后的S使其成为可选的:

pattern = re.compile(r'^S?HESAID:$', re.MULTILINE)

相关问题 更多 >