【发布时间】:2018-01-29 21:56:44
【问题描述】:
我想使用带有正则表达式(re.sub() 或 re.findall())的空格来拆分 Python 字符串中的标点符号。所以"I like dog, and I like cat."应该变成"I like dog , and I like cat . "
我有一串标点符号 (python string.punctuation = "!"#$%&'()*+,-./:;<=>?@[\]^_{|}~") 我想替换,但我也有一个我不想替换的特定缩写列表(比如 list1 = ["e.g." , "Miss."]。我不想替换多个标点符号(任何两个相邻的标点符号,例如 ... 或 ,")或任何撇号,例如 I'm, you're, he's, we're。
假设我有list1 = ["e.g." , "Miss."] 和string.punctuation = "!"#$%&'()*+,-./:;<=>?@[\]^_{|}~"。给定一个字符串"I'm a cat, you're a dog, e.g. a cat... really?, non-dog!!",它应该变成"I'm a cat , you're a dog , e.g. a cat ... really ?, non-dog !! "
除了我的特定缩写和多个标点符号和撇号列表之外,是否有正则表达式可以从字符串中拆分标点符号?
【问题讨论】:
-
你为什么要这样做?
-
提供更可测试的扩展输入字符串,涵盖所有条件。然后,发布预期的结果
-
为了分类目的对文本正文进行预处理。
-
为什么使用单个正则表达式可以通过一些代码更轻松、更灵活地完成?我想象一个正则表达式添加 all 空格,然后处理异常列表。这几乎是规范的“让我们使用正则表达式 - 然后你有 两个 问题”。
-
有一些代码也很好,我只是想找到一个解决方案,我一直在使用正则表达式并卡住了。你有一些我可以遵循的示例代码吗?