3 回答

TA貢獻1757條經(jīng)驗 獲得超7個贊
這實際上很簡單,盡管它取決于實現(xiàn)/標志 *:
$a
將a在字符串末尾匹配一個字符。祝好運。
警告:
此表達式很昂貴-它會掃描整行,找到行尾錨,然后才找到a并返回負匹配。(有關更多詳細信息,請參見下面的評論。)
*最初,我對多行模式正則表達式?jīng)]有多加考慮,因為它$也與行尾匹配。實際上,它將與換行符之前的空字符串匹配,因此,像這樣的普通字符a永遠不會出現(xiàn)在之后$。

TA貢獻1804條經(jīng)驗 獲得超2個贊
杠桿作用negative lookahead:
>>> import re
>>> x=r'(?!x)x'
>>> r=re.compile(x)
>>> r.match('')
>>> r.match('x')
>>> r.match('y')
此RE在術語上是矛盾的,因此永遠不會匹配任何內(nèi)容。
注意:
在Python中,re.match()會\A在正則表達式的開頭隱式添加字符串的開始錨點()。此錨對于性能很重要:如果沒有錨,將掃描整個字符串。那些不使用Python的用戶將希望顯式添加錨點:
\A(?!x)x

TA貢獻1850條經(jīng)驗 獲得超11個贊
環(huán)視四周:
(?=a)b
對于正則表達式新手:正面看(?=a)要確保下一個字符為a,但不更改搜索位置(或在匹配的字符串中包含“ a”)?,F(xiàn)在,確認下一個字符為a,b僅當下一個字符為時,regex()的其余部分才匹配b。因此,此正則表達式匹配只有一個字符既a與b在同一時間。
- 3 回答
- 0 關注
- 704 瀏覽
添加回答
舉報