首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >regex remove_punctuation,但保持单(双)大写字符点。

regex remove_punctuation,但保持单(双)大写字符点。
EN

Stack Overflow用户
提问于 2020-06-05 14:27:43
回答 1查看 58关注 0票数 1

我需要删除标点符号,但在这个字符串中保留一个点(如果它是人名:):for ex.:

代码语言:javascript
复制
Michigan State President Samuel L. Stanley Jr. and Interim Provost Teresa Sullivan hosted a webinar Friday night, answering questions from returning MSU students.

我需要在L. Jr.保留点

这将删除所有标点符号:

代码语言:javascript
复制
text = re.sub('[^A-Za-z0-9\s\n]+', '', text)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-05 14:57:04

你可以用

代码语言:javascript
复制
text = re.sub(r'\b([A-Z][a-z]?\.)|_|[^\s\w]+', r'\1', text)

regex演示

详细信息

  • \b([A-Z][a-z]?\.) - word边界,然后是一个组1:大写字母后面跟着一个小写字母,然后是一个点(替换模式中的\1在结果中恢复这个文本,这样这个匹配的部分就不会从字符串中删除)
  • | -或
  • _ -下划线
  • | -或
  • [^\s\w]+ -1或更多字符(字母、数字、_和空格除外)。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62217660

复制
相关文章

相似问题

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