1

我有以下正则表达式:

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

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

result = pattern.split(content)

我要添加的是验证,以便除非将 HESAID: 或 SHESAID: 放在新行上,否则不会发生拆分。这不起作用:

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

请帮忙。

4

1 回答 1

4

如果您详细说明它到底是如何不工作的,那将会很有帮助,但我猜问题是它与 HESAID/SHESAID 的连续行不匹配。您可以通过使用行首和行尾锚来解决此问题,而不是实际放入\n您的正则表达式:

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

re.MULTILINE标志是必需的,以便在行的开头和结尾匹配,而不仅仅是字符串的开头和结尾^$

我可能会如下重写正则表达式,?之后S使其成为可选:

pattern = re.compile(r'^S?HESAID:$', re.MULTILINE)
于 2012-12-20T20:39:28.667 回答