Python 如何使用re';拆分字符串时使用特殊字符?
假设我有一个名为Python 如何使用re';拆分字符串时使用特殊字符?,python,regex,python-2.7,Python,Regex,Python 2.7,假设我有一个名为string的变量 string = "Hello(There|World!!" 因为我想在多个分隔符上拆分,所以我使用re.split()来完成这项工作。不幸的是,此字符串包含re模块使用的特殊字符。我不想使用re.escape(),因为那样也会避开感叹号。如果不使用re.escape(),如何在re的特殊字符上拆分 可以使用多个分隔符进行拆分。使用定义要拆分的字符 我想你可能想保留那些感叹号。如果是这样的话 >>> s = "Hello(There|Wor
string
的变量
string = "Hello(There|World!!"
因为我想在多个分隔符上拆分,所以我使用re.split()
来完成这项工作。不幸的是,此字符串包含re
模块使用的特殊字符。我不想使用re.escape()
,因为那样也会避开感叹号。如果不使用re.escape()
,如何在re
的特殊字符上拆分
可以使用多个分隔符进行拆分。使用定义要拆分的字符
我想你可能想保留那些感叹号。如果是这样的话
>>> s = "Hello(There|World!!"
>>> re.split(r'[(|]+', s)
['Hello', 'There', 'World!!']
如果你想在感叹号上拆分
>>> s = "Hello(There|World!!"
>>> re.split(r'[(|!]+', s)
['Hello', 'There', 'World', '']
如果您想拆分其他字符,只需继续将它们添加到类中即可
>>> s = "Hello(There|World!!Hi[There]"
>>> re.split(r'[(|!\[\]]+', s)
['Hello', 'There', 'World', 'Hi', 'There', '']
然后使用
filter
删除列表中的None元素。到目前为止您在做什么?预期的结果是什么?它们之间有什么区别?@SteveJohnson您预期的输出是什么?如果感叹号也转义了又有什么关系?都是\代码>和代码>将匹配代码>。您可以-但通常使用比或更大的字符类ing@JonClements这提供了更好的控制。在这里,我们可以使用!!这在角色类中是不可能的,在角色类中是完全可能的class@JonClements我们如何使用字符类实现它?只需使用re.split(“[(|!]+”,“Hello(There | World!!”)
-我已将+
添加到连续分隔符的分组中,这样您将以'Hello'、'There'、'World'、'']
结束,而不是使用方括号拆分[
或]
?您可以将它们添加到类中,re.split(r'[((!\[\]+],s)
>>> s = "Hello(There|World!!Hi[There]"
>>> re.split(r'[(|!\[\]]+', s)
['Hello', 'There', 'World', 'Hi', 'There', '']