我希望能够从字符串中删除“未配对”的括号。
也就是说,除非在字符串中有跟在括号后面的“)” ,否则应该删除所有的“(” 。同样地,除非在字符串中有跟在“)”前面的“(”,否则应该删除所有的“)”。
理想情况下,算法还应该考虑嵌套的情况。
例如:
也就是说,除非在字符串中有跟在括号后面的“)” ,否则应该删除所有的“(” 。同样地,除非在字符串中有跟在“)”前面的“(”,否则应该删除所有的“)”。
理想情况下,算法还应该考虑嵌套的情况。
例如:
"(a)".remove_unmatched_parents # => "(a)"
"a(".remove_unmatched_parents # => "a"
")a(".remove_unmatched_parents # => "a"
Regexp
比正则表达式强大得多,它们实际上可以解析这种语言,但这并不意味着它很容易维护。你可以编写一个简单的递归下降分析器或者下推自动机,所花费的时间甚至比你阅读别人给你的Regexp
、更不用说编写自己的Regexp
的时间还要短。如果你将Regexp
分成多行以便添加注释,也许最终自动机的代码长度甚至比Regexp
还要短。 - Jörg W Mittag