范例01:匹配数字、指定字符串
source:="ParseRegExpr 2011 ShenZhenTinysoft (TSL)";
ParseRegExpr("(\\d+).*(Tinysoft)",source,"",result,MPos,Mlen);
return result;
//输出:array(("2011 ShenZhenTinysoft","2011","Tinysoft"))
说明:
结果中返回匹配的源串"2011 ShenZhenTinysoft"以及匹配出来的串"2011"和"Tinysoft"
1、在匹配串中加中括号()是表示将匹配的结果返回,下面的例子中,要返回的匹配串的内容是(\\d+)和(tinysoft)匹配出来的结果。
2、\本身就是转义字符,所以要用\\d来表示\d是一个元字符(表示匹配一个数字字符)。\\d+表示匹配多个数字字符。
3、.表示匹配任意单个字符,除'\n'外。.*表示匹配任意多个单个字符。由于.*没有中括号(),所以匹配的字符不返回。
4、(Tinysoft)匹配字符串Tinysoft,并将匹配的字符返回。注意,字符大小写敏感。
范例02:匹配数字、字符串、带括号的字符串
source:="ParseRegExpr 2011 ShenZhenTinysoft (TSL)";
ParseRegExpr("(\\d+).*(Tinysoft) (\\(\\w+\\))",source,"",result,MPos,Mlen);
return result;
//输出:array(("2011 ShenZhenTinysoft (TSL)","2011","Tinysoft","(TSL)"))
说明:
与范例01相比,新增了对()的匹配。
结果中返回匹配的源串"2011 ShenZhenTinysoft (TSL)"以及匹配出来的串"2011"、"Tinysoft"和"(TSL)"。
1、\\(和\\)是对中括号()的匹配。
2、\\w表示\w是一个元字符,匹配包括下划线的任何单词字符。\\w+表示匹配多个任意单词字符。
范例03:处理Unicode串-匹配汉字
source:=L"hello 你好!123"; //unicode串
reg:=L"[\u4E00-\u9FA5]+"; //匹配汉字的正则表达式->也是unicode串
ret:=ParseRegExpr(reg,source,"",result,MPos,Mlen);
return result;
返回结果:array((L"你好"))
范例04:通过控制符"u"设置为非贪婪模式
source:="hello tiny tiny tiny tiny tiny";
reg:="hello.*(tiny)";
ret:=ParseRegExpr(reg,source,"u",result,MPos,Mlen);
return result;
返回:array(("hello tiny","tiny"))