我有以下正则表达式:
pattern = re.compile(r"HESAID:|SHESAID:")
它正常工作。我用它来分割这样的多个分隔符:
result = pattern.split(content)
我要添加的是验证,以便除非将HESAID:或SHESAID:放置在新行上,否则不会发生拆分。这不起作用:
pattern = re.compile(r"\nHESAID:\n|\nSHESAID:\n")
请帮忙。
答案 0 :(得分:4)
如果你详细说明它究竟是如何工作的话会有所帮助,但我猜测问题是它与HESAID / SHESAID的连续行不匹配。您可以通过使用行锚的开头和结尾来解决此问题,而不是将\n
实际放入正则表达式中:
pattern = re.compile(r'^HESAID:$|^SHESAID:$', re.MULTILINE)
re.MULTILINE
标记是必需的,以便^
和$
在行的开头和结尾匹配,而不仅仅是字符串的开头和结尾。
我可能会按如下方式重写正则表达式,?
使其成为可选项后的S
:
pattern = re.compile(r'^S?HESAID:$', re.MULTILINE)