[英]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.