1.正则表达式中必须包含群组,即\(\)包含的部分。这部分将被作为关键字部分。
2.注释将被忽略,不计入正则表达式匹配范围,出现注释,则认为本行结束。
例:
在汇编语言中常以";"作为行注释开始,要只匹配以下第一行中的"T_DSEDAY"部分
:T_DSEDAY: ;一些注释
:T_DSTEWN: .blkb 1 ;一些注释
可以使用这样的表达式:
^:\([a-zA-Z0-9_]+\):\w+$
而只要匹配第二行中的"T_DSTEWN"可以使用
^:\([a-zA-Z0-9_]+\):\w+\.blkb\w+[0-9]+\w*$
正则表达式没有使用"大嘴法",即最大匹配,如果不一直匹配到行尾,
则第一个表达式将也匹配第二行的内容。
如果正则表达式中出现";"则将无法匹配。
如要匹配第一行但写成这样:
^:\([a-zA-Z0-9_]+\):\w+;*
将无法匹配任何结果。
这个估计和C预处理器中将注释直接处理为空格有关系。
2.注释将被忽略,不计入正则表达式匹配范围,出现注释,则认为本行结束。
例:
在汇编语言中常以";"作为行注释开始,要只匹配以下第一行中的"T_DSEDAY"部分
:T_DSEDAY: ;一些注释
:T_DSTEWN: .blkb 1 ;一些注释
可以使用这样的表达式:
^:\([a-zA-Z0-9_]+\):\w+$
而只要匹配第二行中的"T_DSTEWN"可以使用
^:\([a-zA-Z0-9_]+\):\w+\.blkb\w+[0-9]+\w*$
正则表达式没有使用"大嘴法",即最大匹配,如果不一直匹配到行尾,
则第一个表达式将也匹配第二行的内容。
如果正则表达式中出现";"则将无法匹配。
如要匹配第一行但写成这样:
^:\([a-zA-Z0-9_]+\):\w+;*
将无法匹配任何结果。
这个估计和C预处理器中将注释直接处理为空格有关系。