匹配新线

时间:2012-12-20 20:32:35

标签: python regex

我有以下正则表达式:

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

它正常工作。我用它来分割这样的多个分隔符:

result = pattern.split(content)

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

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

请帮忙。

1 个答案:

答案 0 :(得分:4)

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

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

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

我可能会按如下方式重写正则表达式,?使其成为可选项后的S

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