Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用re.split()拆分所有特殊字符_Python_Regex - Fatal编程技术网

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', '']