亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

用Python轉義正則字符串

用Python轉義正則字符串

用Python轉義正則字符串我想使用用戶輸入作為對某些文本進行搜索的regex模式。它可以工作,但是如何處理用戶在regex中放置有意義的字符的情況?例如,用戶希望搜索Word。(s)*regex引擎將采取(s)作為一個團體。我要把它當作一根繩子"(s)"..我能跑replace在用戶輸入和替換(帶著\(而)帶著\)但問題是,我需要對每一個可能的正則表達式符號進行替換。你知道更好的方法嗎?
查看完整描述

3 回答

?
寶慕林4294392

TA貢獻2021條經驗 獲得超8個贊

不幸的是,re.escape()不適合替換字符串:

>>> re.sub('a', re.escape('_'), 'aa')'\\_\\_'

一種解決辦法是將替代物放入一個λ中:

>>> re.sub('a', lambda _: '_', 'aa')'__'

,因為lambda的返回值被處理為re.sub()作為文字字符串。


查看完整回答
反對 回復 2019-06-24
?
MM們

TA貢獻1886條經驗 獲得超2個贊

使用re.escape()職能:

4.2.3 re模塊內容

轉義(字符串)

返回帶有所有非字母數字反斜杠的字符串;如果要匹配可能包含正則表達式元字符的任意文字字符串,這是非常有用的。

一個簡單的例子,搜索任何可選的字符串后面跟著‘s’,并返回Match對象。

def simplistic_plural(word, text):
    word_or_plural = re.escape(word) + 's?'
    return re.match(word_or_plural, text)


查看完整回答
反對 回復 2019-06-24
  • 3 回答
  • 0 關注
  • 940 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號