我写一个简单的解析器C.我正和一些其他语言文件运行它(的乐趣检测内容的正则表达式 - 看到的C-肖像和懒惰的程度 - 不想真写如果我可以避免它,则为每种语言分别分析解析器)。期间解析
但是解析器似乎打破了JavaScript的,如果被解析的代码中包含正则表达式...
案例1: 例如,在解析JavaScript代码段,
var phone="(304)434-5454"
phone=phone.replace(/[\(\)-]/g, "")
//Returns "3044345454" (removes "(", ")", and "-")
的“(”,“[”等得到匹配的新的范围首先,它可能永远不会被关闭
案例2: 而且,对于Perl代码片断,
# Replace backslashes with two forward slashes
# Any character can be used to delimit the regex
$FILE_PATH =~ [email protected]\\@//@g;
的//被匹配的评论...
我怎样才能检测到“C类”程序文件的内容文本内的正则表达式?
为什么你关心你正在做匹配的字符串是否包含正则表达式运算符字符?您不会从输入执行正则表达式模式,您可以在输入时执行它们。 – 2010-05-26 19:24:05
究竟你在试图解析什么?为什么'//'会在Perl中被标记为注释?解析器通常是为定义的语言编写的。 – 2010-05-26 19:24:45
@David Thornley:解析器是为C编写的。 – sonofdelphi 2010-05-26 19:33:30