检查和删除额外的符号

时间:2013-01-10 17:04:41

标签: python symbols

我对从python中删除字符串中的额外符号感兴趣。

通过更高效和pythonic的方式可以做什么?有一些语法模块吗?

我的第一个想法是找到更嵌套的文本,并通过左右两侧,计算开始和结束符号。然后我删除包含太多符号的符号计数器的最后一个。

一个例子就是这个字符串

text = "(This (is an example)"

你可以清楚地看到第一个括号不是另一个括号。所以我想删除它。

text = "This (is and example)"

解决方案必须独立于括号的位置。

其他例子可能是:

text = "(This (is another example) )) (to) explain) the question"

那将成为:

text = "(This (is another example) ) (to) explain the question"

1 个答案:

答案 0 :(得分:0)

不得不将其分解为格式化的答案。查看Python's regular expression module.

如果我了解您的要求,请查看re.sub。您可以使用正则表达式查找要删除的字符,并将其替换为空字符串。

假设我们要删除'。','&'和' *'的所有实例。

>>> import re
>>> s = "abc&def.ghi**jkl&"
>>> re.sub('[\.\&\*]', '', s)
'abcdefghijkl'

如果要匹配的模式较大,您可以使用re.compile并将其作为第一个参数传递给sub。

>>> r = re.compile('[\.\&\*]')
>>> re.sub(r, '', s)
'abcdefghijkl'

希望这有帮助。