使用re对unicode和文本进行分割python字符串

时间:2018-10-16 05:31:29

标签: python regex string

我正在尝试根据unicode和文本(中文)标点符号拆分长字符串。我该怎么做?

def split1(s):
    temp1 = re.split(r"(;|:|•|。|;|:)", s)
    temp = re.split(u"([\u3002|\uFF01|\uFF1F])", temp1)
    i = iter(temp)

更新: 我希望根据常规文本和unicode文本拆分字符串。

1 个答案:

答案 0 :(得分:1)

您可以使用

def split1(s): 
    return re.split(ur"([\u3002\uFF01\uFF1F;:•。;:])", s)

将两个模式分开是没有意义的,因为使用它们的唯一目的是将字符串标记化为与正则表达式匹配的字符和不与正则表达式匹配的字符。

捕获的文本也将成为结果列表的一部分,因为整个模式都被捕获组包裹,请参见re.split docs

  

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

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