2015-11-26 40 views
-1

我正在使用Python re模块。将^^和^识别为不同的正则表达式

我可以使用正则表达式r'\bA\b'(原始字符串)'A''AA'区分:它会找到字符串'A'在比赛和字符串'AA'中没有匹配。

我想实现同样的事情用克拉^,而不是A:我想这'^''^^'区分正则表达式。

我遇到的问题是,正则表达式r'\b\^\b''^'中找不到匹配项。

任何想法?

+0

您可以使用[lookahead断言](https://docs.python.org/2/howto/regex.html#lookahead-assertions)。但据我所知,这些通常在计算上是昂贵的,并且可能有更简单的方法来实现您所需的结果。 – Evert

+0

经过多一点搜索后,我相信这是关于'\ b'而不是关于'^':回答http://stackoverflow.com/a/3241901/1243435给出了* word边界*符号的一个很好的解释'\ B'。 – Robert

+0

为什么downvote? – Robert

回答

2

您需要使用环视这个:

(?<!\^)\^(?!\^) 

\b是一个单词边界,单词字符和非单词字符之间的地方,所以你的模式是不特定相当(不说一下A具体事情,A_也会不匹配因为_就是一个字字符。

在这里,我们断言,需要有一个地方,前面的字符不是插入符号,然后插入符号,那么一个地方下面的字符不是插入符号(归结为“汽车et不得在caret公司“)。

相关问题