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