首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Pythonregex中,如何删除Unicode字符串中除连字符外的所有标点符号?

在Pythonregex中,如何删除Unicode字符串中除连字符外的所有标点符号?
EN

Stack Overflow用户
提问于 2018-07-24 07:31:30
回答 2查看 0关注 0票数 0

我有一段代码用于删除正则字符串中的所有标点符号:

import regex as re    
re.sub(ur"\p{P}+", "", txt)

我怎么才能把它修改成允许连字符呢?

EN

回答 2

Stack Overflow用户

发布于 2018-07-24 16:15:30

[^\P{P}-]+

\P是…的补充\p-不是标点符号。所以这和任何(不是标点符号或破折号)-导致除破折号以外的所有标点符号。

例子:http:/www.rubular.com/r/JsdNM3nFJ3

如果你想要一种非复杂的方式,另一种选择是\p{P}(?<!-):匹配所有标点符号,然后检查它不是破折号(使用负面查找)。

工作实例:http:/www.rubular.com/r/5G62iSYTdk

票数 0
EN

Stack Overflow用户

发布于 2018-07-24 16:51:44

你可以指定要手动删除的标点符号,如[._,]或者提供一个函数而不是替换字符串:

re.sub(r"\p{P}", lambda m: "-" if m.group(0) == "-" else "", text)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100005692

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档