![](/img/trans.png)
[英]How to exclude particular word with special character from a capture group in REGEX?
[英]How to exclude a character from a regex group?
我想從字符串(python)中除去連字符之外的所有非字母數字字符。 如何更改此正則表達式以匹配除連字符以外的任何非字母數字字符?
re.compile('[\W_]')
謝謝。
你可以使用一個否定的字符類代替:
re.compile(r"[^a-zA-Z0-9-]")
這將匹配不在字母數字范圍或連字符中的任何內容。 根據您當前的正則表達式,它也匹配下划線。
>>> r = re.compile(r"[^a-zA-Z0-9-]")
>>> s = "some#%te_xt&with--##%--5 hy-phens *#"
>>> r.sub("",s)
'sometextwith----5hy-phens'
請注意,這也替換了空格(可能肯定是你想要的)。
編輯: SilentGhost建議使用量詞處理引擎可能更便宜,在這種情況下,您可以簡單地使用:
re.compile(r"[^a-zA-Z0-9-]+")
+
將簡單地導致連續匹配的字符的任何運行同時匹配(並被替換)。
\\w
匹配字母數字,添加連字符,然后否定整個集合: r"[^\\w-]"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.