簡體   English   中英

Python正則表達式在單詞的中間找到具有指定字符的單詞,而不以字符開頭或結尾。

[英]Python regex find words with specified character in middle of word not beginning or ending with character.

大家好,我想在單詞中間找到所有帶有特定字符的單詞。 該單詞不能以指定字符開頭或結尾。 讓我們以“ x”為例。 我當前的正則表達式如下所示:

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

\\ w + x不返回任何結果。 有人知道為什么嗎?

嘗試這個:

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

您可以使用如下形式:

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

輸出:

<_sre.SRE_Match object at 0x10eaa0bf8>
None

其中[^]是任何字符。 因此,它基本上將匹配“ x”,只是它在其他東西之間。 您可以使用[az]更改[^]以指定小寫字母,而不是任何字符。

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

            ^^

您錯過了x之后的\\w+ 。請參閱演示。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM