【发布时间】:2012-09-12 06:02:57
【问题描述】:
我在这里尝试了多种解决方案,尽管它们剥离了一些代码,但它们似乎不适用于多个标点符号。 “[ 或者 ', 这段代码:
regex = re.compile('[%s]' % re.escape(string.punctuation))
for i in words:
while regex.match(i):
regex.sub('', i)
我来自:
Best way to strip punctuation from a string in Python 很好,但我仍然遇到双标点的问题。
我添加了While 循环,希望对每个单词进行迭代以删除多个标点符号,但这似乎不起作用,它只是卡在第一项“[并且没有退出它
我只是错过了一些明显的部分,我也只是忘记了吗?
我通过添加冗余和双循环我的列表解决了这个问题,由于相当大的集合,这需要很长时间(甚至几分钟)
我使用 Python 2.7
【问题讨论】:
-
你能在
regex.sub('',???)不起作用的地方添加一个示例字符串吗? (也就是说,填写???)。 -
不确定您要说实话,用示例字符串代替 i?
-
是的,这就是我要的。对我来说,看起来你拥有的正则表达式/子应该可以工作......一个显示它失败的具体例子会很有帮助。
-
我在 regex.sub('', i) 上面添加了 print i 并导致无限 [" 必须控制 C 出来。我测试了标点符号集,两项都包括在内。我很困惑
-
所以它遇到问题的字符串是
["——因为你使用的re将'["'变成''没有问题(至于无限循环,请查看答案@LukasGraf)。
标签: python regex string punctuation