Python正则表达式在单词的中间找到具有指定字符的单词,而不是以字符开头或结尾。

时间:2015-06-09 07:49:39

标签: python regex

嘿伙计们,我正试图在单词的中间找到所有带有特定字符的单词。单词不能以指定的字符开头或结尾。 我们以'x'为例。我目前的正则表达式如下:

adUrl
<\ n> \ w + x没有返回任何结果。任何人都知道为什么?

3 个答案:

答案 0 :(得分:1)

试试这个:

>>> z = 'hello welxtra xcra crax extra'
>>> re.findall(r'[^x ]\w*x\w*[^x ]', z)
['welxtra', 'extra']

答案 1 :(得分:0)

您可以使用以下内容:

import re
print re.match(r'[^]+x+[^]','provxa')
print re.match(r'[^]+x+[^]','xprova')

输出:

<_sre.SRE_Match object at 0x10eaa0bf8>
None

其中[^]是任何字符。所以它基本上匹配'x'只是在它之间。您可以使用[^]更改[a-z]以指定小写字母,而不是任何字符。

答案 2 :(得分:0)

\b(?!x)\w+x\w+(?<!x)\b

            ^^

\w+之后您错过了x。请参阅演示。

https://regex101.com/r/nS2lT4/34