Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/300.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
在unicode和文本上使用re拆分python字符串_Python_Regex_String - Fatal编程技术网

在unicode和文本上使用re拆分python字符串

在unicode和文本上使用re拆分python字符串,python,regex,string,Python,Regex,String,我正在尝试拆分一个基于unicode和文本(中文)标点符号的长字符串。我该怎么做 def split1(s): temp1 = re.split(r"(;|:|•|。|;|:)", s) temp = re.split(u"([\u3002|\uFF01|\uFF1F])", temp1) i = iter(temp) 更新: 我希望基于常规文本和unicode文本拆分字符串。您可以使用 def split1(s): return re.split(ur"([

我正在尝试拆分一个基于unicode和文本(中文)标点符号的长字符串。我该怎么做

def split1(s):
    temp1 = re.split(r"(;|:|•|。|;|:)", s)
    temp = re.split(u"([\u3002|\uFF01|\uFF1F])", temp1)
    i = iter(temp)
更新: 我希望基于常规文本和unicode文本拆分字符串。

您可以使用

def split1(s): 
    return re.split(ur"([\u3002\uFF01\uFF1F;:•。;:])", s)
拆分这两种模式没有意义,因为使用它们的唯一目的是将字符串标记为与正则表达式匹配的字符和不匹配的字符

捕获的文本也将成为结果列表的一部分,因为整个模式都用捕获组包装,请参见:

如果模式中使用了捕获括号,那么模式中所有组的文本也将作为结果列表的一部分返回


请注意
u
前缀,它也会告诉Python 2.x正确处理字符串中的Unicode代码单位。

会发生什么?该怎么办?您尝试过什么?上面的代码出了什么问题?您希望的输出是什么?可能
def split1(s):返回re.split(ur)([\u3002\uFF01\uFF1F;:•;;:;::)”
?请添加一些示例和预期输出。@Malvolio上面的代码将返回一个错误,因为temp1是“re”类,不再是字符串。我想要的输出是根据这两个值将字符串s拆分两次regexes@AkshayNevrekar见上述评论