Python 如何使用re.split()拆分所有特殊字符
我正在尝试使用Python 如何使用re.split()拆分所有特殊字符,python,regex,Python,Regex,我正在尝试使用import re包中的re.split()在任何特殊字符处进行拆分。这就是我到目前为止所做的,但似乎还没有真正起作用。有什么想法吗 word = [b for b in re.split(r'\`\-\=\~\!\@\#\$\%\^\&\*\(\)\_\+\[\]\{\}\;\'\\\:\"\|\<\,\.\/\>\<\>\?', a)] word=[b代表re.split中的b(r'\`-\=\~\!\@\\\\$\%\^\&\*\(\)\\\
import re
包中的re.split()
在任何特殊字符处进行拆分。这就是我到目前为止所做的,但似乎还没有真正起作用。有什么想法吗
word = [b for b in re.split(r'\`\-\=\~\!\@\#\$\%\^\&\*\(\)\_\+\[\]\{\}\;\'\\\:\"\|\<\,\.\/\>\<\>\?', a)]
word=[b代表re.split中的b(r'\`-\=\~\!\@\\\\$\%\^\&\*\(\)\\\\\+\[\]\{\\\\\\\\\\\\\:\:“\\\\\?”,a)]
使用字符类:
re.split(r'[`\-=~!@#$%^&*()_+\[\]{};\'\\:"|<,./<>?]', a)
re.split(r'[`-=~!@$%^&*()\+\[\]{};\'\\:“与其枚举所有“特殊”字符,不如创建一个不拆分的字符类,并使用^
字符将其反转
例如,re.split(r“[^\w\s]”,s)
将在类\w
或\s
之外的任何字符处进行拆分([a-zA-Z0-9][/code>和[\t\n\r\f\v]
分别,请参阅以获取更多信息)。但是,请注意,\u
字符包含在\w
类中,因此您可能需要显式指定所有“常规”字符,例如re.split(r“[^a-zA-Z0-9\s]”,s)
当遇到非字母数字的字符时,可能需要拆分字符串。为此,可以在正则表达式中使用元字符\w
,意思是“每个字母a-ZA-Z0-9”,并将相反的字符与^
匹配,如下所示:
>>> re.split(r'[^\w]', 'toto"t"o/t!')
['toto', 't', 'o', 't', '']
你能描述一下你的具体问题吗?到底什么是错误的,样本输入和期望的输出会发生什么?什么是“特殊”字符?通过推论:什么是“常规”字符(与特殊相反)?非字母?非字母数字?在哪个语言环境/语言中?定义特殊字符和a
。您是否尝试过类似re.split(r“[^\w\d\s]”,s)
?(问题:\u
在\w
中)还有,为什么要使用列表理解?我喜欢这一个,因为它有效地使用了内置字符类。如果您也想跨空间拆分呢?例如,在给定的示例中,我想根据foo和bar之间的空间将它们拆分为两个字符串作为分隔符,那么我需要对给定的正则表达式做哪些更改在…上
>>> re.split(r'[^\w]', 'toto"t"o/t!')
['toto', 't', 'o', 't', '']