0

我对从 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"
4

1 回答 1

0

不得不将其分解为格式化的答案。检查Python 的正则表达式模块。

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

假设我们要删除所有“.”、“&”和“*”的实例。

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

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

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

希望这可以帮助。

于 2013-01-10T18:14:00.683 回答