我想为我的个人用法实现在线编辑器,因此我必须检查我在在线文本编辑器中编写的语句是否在是否正确。
我想检查带有正则表达式的语句形式,我找到了 IF语句 here的良好表达式,它是
if\s*\(((?:(?:(?:"(?:(?:\\")|[^"])*")|(?:'(?:(?:\\')|[^'])*'))|[^\(\)]|\((?1)\))*+)\)\s*{((?:(?:(?:"(?:(?:\\")|[^"])*")|(?:'(?:(?:\\')|[^'])*'))|[^{}]|{(?2)})*+)}\s*(?:(?:else\s*{((?:(?:(?:"(?:(?:\\")|[^"])*")|(?:'(?:(?:\\')|[^'])*'))|[^{}]|{(?3)})*+)}\s*)|(?:else\s*if\s*\(((?:(?:(?:"(?:(?:\\")|[^"])*")|(?:'(?:(?:\\')|[^'])*'))|[^\(\)]|\((?4)\))*+)\)\s*{((?:(?:(?:"(?:(?:\\")|[^"])*")|(?:'(?:(?:\\')|[^'])*'))|[^{}]|{(?5)})*+)}\s*))*;
现在我正在寻找其余的表达方式,例如:
请don't say that it's impossible
,我可以通过regular expression
处理我的问题,IF expression
我上面提到的工作得很好我需要这样的事情< / p>
提前谢谢
答案 0 :(得分:5)
即使这不是您问题的直接答案 - 我坚持您使用ANTLR代替
答案 1 :(得分:1)
在这种情况下使用正则表达式不是一个好主意,你应该使用类似的东西 语法分析器
答案 2 :(得分:0)
我使用正则表达式进行解析的经验是,只有在以下情况下它们才是实用的:
由于您正在寻求帮助,您可能不符合第一个标准,所以我不能为您推荐它们。
P.S。是的,我有时会在快速和肮脏的解析情况下自己使用它们。它们非常宝贵。