我有以下的正则表达式:匹配新线
pattern = re.compile(r"HESAID:|SHESAID:")
它的正常工作。我用它由多个分隔符这样的划分:
result = pattern.split(content)
我想补充的是验证使得分割不happend除非HESAID:或SHESAID:放在新线。这是行不通的:
pattern = re.compile(r"\nHESAID:\n|\nSHESAID:\n")
请帮忙。
我有以下的正则表达式:匹配新线
pattern = re.compile(r"HESAID:|SHESAID:")
它的正常工作。我用它由多个分隔符这样的划分:
result = pattern.split(content)
我想补充的是验证使得分割不happend除非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)
您需要使用多正则表达式。 – alex