这个地方有各种语言的RegExp的信息:www.regular-expressions.info/delphi.html,其中就有我需要的适用于Delphi7的TPerlRegEx。下载安装的时候,需要注意pcre3.dll这个文件在prce目录下。
//先测试一下:
uses
PerlRegEx;//uses正则表达式单元
procedureTForm1.FormCreate(Sender:TObject);
var
reg:TPerlRegEx;//声明正则表达式变量
begin
reg:=TPerlRegEx.Create(nil);//建立
reg.Subject:='sSsS';//这是要替换的源字符串
reg.RegEx:='s';//这是正则表达式
ifreg.matchthenShowMessage('OK');//源字符串中含有正则表达式字符串
reg.Replacement:='◆';//要替换成的新串
reg.ReplaceAll;//执行全部替换
ShowMessage(reg.Subject);//返回替换结果:◆S◆S
reg.Free;
end;
但是这个版本是不支持Unicode的,只支持AnsiString。所以:
reg.Subject:='中国';//中间有空格
reg.RegEx:='^\S{2,}'//想表达连续2个非空白汉字字符,但是reg.match的结果是true。
汉字的unicode范围是[\u4e00-\u9fa5],但是对于常见的中文操作系统,编码方案大概都采用的是GB2312或
者GBK,在这种情况下该如何表达汉字?是个问题。^[\xa1-\xff],有人说是这个,但是我试了一下,好像
不可以。
0 评论:
发表评论