// ? 号的意义是匹配 0-1 次, 如果需要匹配 ? 怎么办
var
reg: TPerlRegEx;
begin
reg := TPerlRegEx.Create(nil);
reg.Subject := '你好吗? 还行!';
reg.RegEx := '\?|!'; // 加转义用的 \
reg.Replacement := '◆';
reg.ReplaceAll;
ShowMessage(reg.Subject); //返回: 你好吗◆ 还行◆
FreeAndNil(reg);
end;
//乱用转义符号 \ 有时是可以的, 但有时会出问题, 最好不要乱用
var
reg: TPerlRegEx;
begin
reg := TPerlRegEx.Create(nil);
reg.Subject := '你好吗? 还行!';
reg.RegEx := '\?|\!|\好'; // 给没必要的 "!" 与 "好" 加了 \ 在本例中也正常了
reg.Replacement := '◆';
reg.ReplaceAll;
ShowMessage(reg.Subject); //返回: 你◆吗◆ 还行◆
FreeAndNil(reg);
end;
{ 本来是有一个选项 [preExtra] 禁止乱用的, 但效果不好}
正则表达式中的特殊字符表:
|
特殊字符
|
在正则表达式中的意义
|
匹配字符本身
|
|
^
|
匹配字符串的开始,或不匹配 [] 中的内容
|
\^
|
|
$
|
匹配字符串的结尾
|
\$
|
|
( 和 )
|
标记子表达式
|
\( 和 \)
|
|
[ 和 ]
|
匹配"多种字符" 的表达式
|
\[ 和 \]
|
|
{ 和 }
|
匹配次数的符号
|
\{ 和 \}
|
|
.
|
匹配除换行符以外的所有字符
|
\.
|
|
?
|
匹配 0 次或 1 次
|
\?
|
|
+
|
匹配至少 1 次
|
\+
|
|
*
|
匹配 0 次或任意次
|
\*
|
|
|
|
或
|
\|
|
|
\
|
转义符号本身
|
\\
|
posted on 2007-12-21 15:39
万一 阅读(786)
评论(0) 编辑 收藏 网摘 所属分类:
40.Delphi 与正则表达式