-1
我正在使用Python re
模块。将^^和^识别为不同的正则表达式
我可以使用正则表达式r'\bA\b'
(原始字符串)'A'
和'AA'
区分:它会找到字符串'A'
在比赛和字符串'AA'
中没有匹配。
我想实现同样的事情用克拉^
,而不是A
:我想这'^'
和'^^'
区分正则表达式。
我遇到的问题是,正则表达式r'\b\^\b'
在'^
'中找不到匹配项。
任何想法?
我正在使用Python re
模块。将^^和^识别为不同的正则表达式
我可以使用正则表达式r'\bA\b'
(原始字符串)'A'
和'AA'
区分:它会找到字符串'A'
在比赛和字符串'AA'
中没有匹配。
我想实现同样的事情用克拉^
,而不是A
:我想这'^'
和'^^'
区分正则表达式。
我遇到的问题是,正则表达式r'\b\^\b'
在'^
'中找不到匹配项。
任何想法?
您需要使用环视这个:
(?<!\^)\^(?!\^)
\b
是一个单词边界,单词字符和非单词字符之间的地方,所以你的模式是不特定相当(不说一下A
具体事情,A_
也会不匹配因为_
就是一个字字符。
在这里,我们断言,需要有一个地方,前面的字符不是插入符号,然后插入符号,那么一个地方下面的字符不是插入符号(归结为“汽车et不得在caret公司“)。
您可以使用[lookahead断言](https://docs.python.org/2/howto/regex.html#lookahead-assertions)。但据我所知,这些通常在计算上是昂贵的,并且可能有更简单的方法来实现您所需的结果。 – Evert
经过多一点搜索后,我相信这是关于'\ b'而不是关于'^':回答http://stackoverflow.com/a/3241901/1243435给出了* word边界*符号的一个很好的解释'\ B'。 – Robert
为什么downvote? – Robert