我正在从o'reilly书中学习lex和yacc,我遇到了一个lex示例,它处理命令,数字,字符串和新行,忽略空格和注释。
我无法理解示例中的一个特定正则表达式:
\ “[^ \” \ n]的* \“
此表达式处理双引号中的文本。例如:“test regex”将成功匹配,而测试正则表达式将无法匹配。
我阅读了关于正则表达式的Wikipedia文章,但我仍然没有得到它。
答案 0 :(得分:3)
double quote
(\"
),anything but double quote or linefeed
([^\"\n]
)0次或多次(*
),double quote
({{1} })。
答案 1 :(得分:0)
\"
匹配起始引号(“)。引号用\来转义,以便不破坏正则表达式字符串。
[^\"\n]*
匹配除引号或行尾之外的任何内容。 ^表示不,\ n是行尾,*表示匹配0次或更多
\"
匹配上次报价