簡體   English   中英

用匹配的模式替換python中的String

[英]Replace String in python with matched pattern

我必須從單詞的開頭和結尾刪除任何標點符號。 我正在使用re.sub來做到這一點。

re.sub(r'(\w.+)(?=[^\w]$)','\1',text)

分組沒有運作 - 我得到的只是☺. 對於Mihir4. 在命令行中

字符串文字'\\1'相當於'\\x01' 您需要轉義它或使用原始字符串文字來表示反向引用組1。

順便說一句,您不需要使用捕獲組。

>>> re.sub(r'^[^-\w]+|[^-\w]$', '', 'Mihir4.')
'Mihir4'

如果你有多個單詞的字符串,例如

text = ".adfdf. 'df' !3423? ld! :sdsd"

這樣就可以了(當然,它也適用於單個單詞):

>>> re.sub(r'[^\w\s]*(\w+)[^\w\s]*', r'\1', text)
'adfdf df 3423 ld sdsd'

注意r'\\1'中的r'\\1' 這相當於'\\\\1'

>>> re.sub(r'[^\w\s]*(\w+)[^\w\s]*', '\\1', text)
'adfdf df 3423 ld sdsd'

進一步閱讀: 反斜杠瘟疫

暫無
暫無

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

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