我需要删除标点符号,但在这个字符串中保留一个点(如果它是人名:):for ex.:
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.保留点
这将删除所有标点符号:
text = re.sub('[^A-Za-z0-9\s\n]+', '', text)发布于 2020-06-05 14:57:04
你可以用
text = re.sub(r'\b([A-Z][a-z]?\.)|_|[^\s\w]+', r'\1', text)详细信息
\b([A-Z][a-z]?\.) - word边界,然后是一个组1:大写字母后面跟着一个小写字母,然后是一个点(替换模式中的\1在结果中恢复这个文本,这样这个匹配的部分就不会从字符串中删除)| -或_ -下划线| -或[^\s\w]+ -1或更多字符(字母、数字、_和空格除外)。https://stackoverflow.com/questions/62217660
复制相似问题