我有一段代码用于删除正则字符串中的所有标点符号:
import regex as re
re.sub(ur"\p{P}+", "", txt)
我怎么才能把它修改成允许连字符呢?
发布于 2018-07-24 16:15:30
[^\P{P}-]+
\P
是…的补充\p
-不是标点符号。所以这和任何不(不是标点符号或破折号)-导致除破折号以外的所有标点符号。
例子:http:/www.rubular.com/r/JsdNM3nFJ3
如果你想要一种非复杂的方式,另一种选择是\p{P}(?<!-)
:匹配所有标点符号,然后检查它不是破折号(使用负面查找)。
发布于 2018-07-24 16:51:44
你可以指定要手动删除的标点符号,如[._,]
或者提供一个函数而不是替换字符串:
re.sub(r"\p{P}", lambda m: "-" if m.group(0) == "-" else "", text)
https://stackoverflow.com/questions/-100005692
复制相似问题