CBrother 正则表达式
正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。本章节主要介绍CBrother中常用的正则表达式处理函数。
RegEx类
RegEx类表示一个正则表达式
函数 | 描述 | 用法 |
---|---|---|
RegEx(pattern,icase) | 构造函数,pattern为正则表达式,icase为bool值,表示是否区分大小写,不传默认为false表示区分大小写 | var regex = new RegEx("[a-z0-9]+");var regex = new RegEx("[a-z0-9]+",true); |
match(str) | 全文匹配,即要求str整个字符串符合匹配规则。匹配返回true,不匹配返回false。 | regex.match("112243"); |
matchAll(str) | 获取str里面符合全文匹配规则的所有子串。返回Array对象,没有匹配的返回null。 | var array = regex.matchAll("112233"); |
search(str) | 搜索匹配,即搜索str中存在符合规则的子字符串。有匹配返回true,无匹配返回false。 | regex.search("112243"); |
searchAll(str) | 获取str里面符合搜索匹配规则的所有子串。返回Array对象,没有匹配的返回null。 | var array = regex.searchAll("112233"); |
replace(str,repl) | 按照正则结果,和repl的规则,替换str。repl可以为要替换的目标字串,也可以为修改规则。 | regex.replace("CBrother 2019!","1111"); |
match与search的例子:
function main(parm)
{
var regex = new RegEx("[a-z0-9]+");
if(regex.match("cbrother233"))
{
print "match suc: cbrother233 in [a-z0-9]+";
}
else
{
print "match err: cbrother233 in [a-z0-9]+";
}
if(regex.match("cbrother233!!"))
{
print "match suc: cbrother233!! in [a-z0-9]+";
}
else
{
print "match err: cbrother233!! in [a-z0-9]+";
}
if(regex.search("cbrother233!!"))
{
print "search suc: cbrother233!! in [a-z0-9]+";
}
else
{
print "search err: cbrother233!! in [a-z0-9]+";
}
}
结果:
match suc: cbrother233 in [a-z0-9]+
match err: cbrother233!! in [a-z0-9]+
search suc: cbrother233!! in [a-z0-9]+
可以看出match与search的区别在于:match需要整个字符串全部符合正则表达式,search只要有一个子串符合就可以了!
matchAll与searchAll的例子:
function main(parm)
{
var regex = new RegEx("([a-z]+)(\d+)");
var arr = regex.matchAll("cbrother233");
print arr.size();
for(var i = 0 ; i < arr.size() ; i++)
{
print arr[i];
}
arr = regex.searchAll("cbrother233");
print arr.size();
for(var i = 0 ; i < arr.size() ; i++)
{
print arr[i];
}
}
结果:
matchAll size:3
cbrother233
cbrother
233
searchAll size:3
cbrother233
cbrother
233
replace例子:
function main(parm)
{
var regex = new RegEx("cbrother");
print regex.replace("cbrother233","replace");
regex = new RegEx("(.{3})(.{2})_(\\d{3})");
print regex.replace("cbrother_233!","$1$3");
print regex.replace("cbrother_233!","$1$3$2");
}
结果:
replace233
cbroth233!
cbroth233er!