我有一个文件存储,我正在用Javascript阅读它。 问题是我想模拟一个语法验证器,但我无法获得好的结果。
syntax.txt:
class foo {
}
问题是我无法获得课程内容。 我所做的是验证是否有类声明:
fileString.match(\^class\g);
这会让我回复:["class"]
,但我希望得到foo { }
并且内心充实。
这可能吗?
如果文件发生变化会发生什么?就像是: syntax.txt:
class foo {
}
class bar {
}
谢谢!
答案 0 :(得分:2)
由于同样的原因you can't validate HTML with regex,您无法使用正则表达式验证编程语言。它不是常规。
想象一下(伪代码):
class foo {
function barbar() {
if(foobar) {
case(bar) {
'x': ... break;
'y':
if(foofoo) {
...
return "}";
}
}
}
}
}
你永远无法处理正则表达式中的所有场景。你需要一个真正的解析器。你可以自己编写或使用库,但你绝对不能依赖正则表达式。