2012-12-20 43 views
1

我有以下的正则表达式:匹配新线

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

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

result = pattern.split(content) 

我想补充的是验证使得分割不happend除非HESAID:或SHESAID:放在新线。这是行不通的:

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

请帮忙。

+1

您需要使用多正则表达式。 – alex

回答

4

如果你详细阐述了它不能正常工作会有帮助,但我猜测问题在于它不匹配HESAID/SHESAID的连续行。您可以通过使用开始和线锚的结束,而不是实际上是把\n在您的正则表达式解决这个问题:

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

re.MULTILINE标志是必要的,这样^,并在开头和行结束$比赛,而不仅仅是字符串的开始和结束。

我可能会改写如下正则表达式时,?S后使得可选:

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

F.J.有个人资料图片! – Droogans

+0

非常感谢,这正是我所需要的。 –

+0

@Droogans是的!帽子在自动生成的盒子上看起来很丑。 –