我正在学习用于解析技术的flex / bison。本书flex and bison显示了这样的flex示例:
UCN (\\u[0-9a-fA-F]{4}|\\U[0-9a-fA-F]{8})
{%
...
%}
%%
\"([^\"\\]|\\['"?\\abfnrtv]|\\[0-7]{1,3}|\\[Xx][0-9a-fA-F]+|{UCN})+\" { ... save token here }
%%
我不知道正则表达式中的这些部分:
[^\"\\]
是否表示与\"
或\\
不匹配?如果是这样,为什么需要指定此不匹配]>?因为\"
和\\
似乎没有出现在其他组中。\\[0-7]{1,3}
是什么意思?\\[Xx][0-9a-fA-F]
是什么意思?UCN
是utf-8吗?我正在学习用于解析技术的flex / bison。图书flex和bison展示了这样的flex示例:UCN(\\ u [0-9a-fA-F] {4} | \\ U [0-9a-fA-F] {8}){%...% } %% \“([[^ \” \\] | \\ ['“?\\ abfnrtv] | \\ [0-7] {1,3} | \\ [...
UCN并不表示UTF-8。它与编码无关。它表示通用字符名称;从某种意义上说,它是通用的,它使您可以指定Unicode曲目中的任何字符。
1)[^ ...]表示匹配not
该正则表达式与以下内容匹配: