一尘不染

用于检查字符串是否具有不匹配括号的正则表达式?

php

在PHP脚本中,应该使用什么正则表达式来检查字符串中不匹配的括号?我要允许的内容包括:

  • 还行吧)
  • 还行吧)

我要防止的事情:

  • 这是不好的(
  • 这也是(不好
  • 这是(不好(太)了

谢谢!

更新:你们都摇滚。使用正则表达式执行此操作似乎比应做的要难,而这些第二级答案正是使stackoverflow变得漂亮的原因。感谢您的链接和伪代码。我不确定要给谁答案,所以我向所有我不能接受的人表示歉意。


阅读 404

收藏
2020-05-29

共1个答案

一尘不染

正则表达式不是正确的工具。手动扫描字符串。

伪代码:

depth = 0
for character in some_string:
    depth += character == '('
    depth -= character == ')'
    if depth < 0:
       break

if depth != 0:
   print "unmatched parentheses"
2020-05-29