【问题标题】:Checking and removing extra symbols检查和删除多余的符号
【发布时间】:2012-12-25 03:46:52
【问题描述】:

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

【问题讨论】:

  • 你能举一些例子来说明你在说什么吗?
  • 也许可以查看string docs
  • Ashwini Chaudhary 是对的,我们需要更多信息。但是,根据给出的信息,我首先想到的是正则表达式。看看 re.sub(...)。
  • 举个例子,我想这已经得到了回答。 stackoverflow.com/questions/5454322/…

标签: python symbols


【解决方案1】:

必须将其分解为格式化的答案。检查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'

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-08-29
    • 2019-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多