我对从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"
答案 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'
希望这有帮助。