2024-10-04 03:16:48 发布
网友
我有以下regexp:
pattern = re.compile(r"HESAID:|SHESAID:")
它工作正常。我用它来拆分多个分隔符,如下所示:
result = pattern.split(content)
我想补充的是验证,这样分裂就不会发生,除非他说:或她说:放在新行上。这不起作用:
pattern = re.compile(r"\nHESAID:\n|\nSHESAID:\n")
请帮忙。你知道吗
如果你详细说明它究竟是如何不起作用的,那会很有帮助,但我猜问题是它与HESAID/SHESAID的连续行不匹配。您可以通过使用行首和行尾锚定来解决这个问题,而不是在regex中实际放置\n:
\n
pattern = re.compile(r'^HESAID:$|^SHESAID:$', re.MULTILINE)
re.MULTILINE标志是必需的,以便^和$在行的开始和结束处匹配,而不仅仅是字符串的开始和结束。你知道吗
re.MULTILINE
^
$
我可能会如下重写regex,?之后的S使其成为可选的:
?
S
pattern = re.compile(r'^S?HESAID:$', re.MULTILINE)
如果你详细说明它究竟是如何不起作用的,那会很有帮助,但我猜问题是它与HESAID/SHESAID的连续行不匹配。您可以通过使用行首和行尾锚定来解决这个问题,而不是在regex中实际放置
\n
:re.MULTILINE
标志是必需的,以便^
和$
在行的开始和结束处匹配,而不仅仅是字符串的开始和结束。你知道吗我可能会如下重写regex,
?
之后的S
使其成为可选的:相关问题 更多 >
编程相关推荐