簡體   English   中英

如何用re.split()分割所有特殊字符

[英]how to split at ALL special characters with re.split()

我試圖使用import re package中的re.split()分割任何特殊字符。 這是我到目前為止所做的,但似乎還沒有真正解決。 有任何想法嗎?

word = [b for b in re.split(r'\`\-\=\~\!\@\#\$\%\^\&\*\(\)\_\+\[\]\{\}\;\'\\\:\"\|\<\,\.\/\>\<\>\?', a)]

可以更容易地創建一個使用^字符拆分和反轉它的字符類,而不是枚舉所有“特殊”字符。

例如, re.split(r"[^\\w\\s]", s)將分割為不在\\w\\s中的任何字符( [a-zA-Z0-9_][ \\t\\n\\r\\f\\v] [a-zA-Z0-9_] [ \\t\\n\\r\\f\\v]分別見此處以獲取更多信息)。 但是,請注意_字符包含在\\w類中,因此您可能希望明確指定所有“常規”字符,例如re.split(r"[^a-zA-Z0-9\\s]", s)

>>> re.split(r"[^a-zA-Z0-9\s]", "foo bar_blub23/x~y'z")
['foo bar', 'blub23', 'x', 'y', 'z']

使用字符類:

re.split(r'[`\-=~!@#$%^&*()_+\[\]{};\'\\:"|<,./<>?]', a)

當您遇到不是字母數字的字符時,您可能希望拆分字符串。 為此,您可以在正則表達式中使用元字符\\w ,這意味着“每個字母a-ZA-Z0-9”並與^相反,如下所示:

>>> re.split(r'[^\w]', 'toto"t"o/t!')
['toto', 't', 'o', 't', '']

暫無
暫無

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

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