现在的位置: 首页delphi精华>正文
Delphi 正则表达式语法(10): 选项
2008年03月25日 delphi精华 暂无评论


----------------------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------------------

-------------------------------------------------------------------------------------------------------------

-----------------------------------------------------------------------------------------------

--------------------------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------------------


{preExtended 是最复杂的一个选项:
1、它会忽略表达式中的空白, 譬如: 本例中的表达式如果是 'i C' 将不会匹配成功;
2、空白要用相应的十六进制表示, 譬如用 x20 表示空格;
3、把表达式中从 # 到行尾的部分当作注释而被忽略;
4、如果要使用 # ,需要用 # 代替;
5、表达式的标准注释是: (?#...) 及其中 # 后面的内容均为注释, 不管指定 preExtended 与否
}
---------------------------------------------------------------------------------------------------------------

关于选项 preExtra:

如果表达式中需要特殊字符 ^ $ ( ) [ ] { } . ? + * | 时, 需要加转义符号 ;
默认状态下, 其他字符
前面添加了 会识别为字符本身;
preExtra 选项应该就是禁止这种情况的, 也就是不要在非特殊字符前加 ;
但测试效果 ... 也许是我没弄明白!


还有三个状态选项: preNotBOL, preNotEOL, preNotEmpty

reg.State := [preNotBOL] 是让标记开始的 ^ 无效;
reg.State := [preNotEOL] 是让标记结尾的 $ 无效;
reg.State := [preNotEmpty] 没弄明白!


另外这些选择是可以组合使用的, 譬如:

reg.Options := [preCaseLess, preMultiLine, preSingleLine];
reg.State := [preNotBOL, preNotEOL];

给我留言

留言无头像?


×
腾讯微博