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的例子:

  1. function main(parm)
  2. {
  3. var regex = new RegEx("[a-z0-9]+");
  4. if(regex.match("cbrother233"))
  5. {
  6. print "match suc: cbrother233 in [a-z0-9]+";
  7. }
  8. else
  9. {
  10. print "match err: cbrother233 in [a-z0-9]+";
  11. }
  12. if(regex.match("cbrother233!!"))
  13. {
  14. print "match suc: cbrother233!! in [a-z0-9]+";
  15. }
  16. else
  17. {
  18. print "match err: cbrother233!! in [a-z0-9]+";
  19. }
  20. if(regex.search("cbrother233!!"))
  21. {
  22. print "search suc: cbrother233!! in [a-z0-9]+";
  23. }
  24. else
  25. {
  26. print "search err: cbrother233!! in [a-z0-9]+";
  27. }
  28. }

结果:

  1. match suc: cbrother233 in [a-z0-9]+
  2. match err: cbrother233!! in [a-z0-9]+
  3. search suc: cbrother233!! in [a-z0-9]+

可以看出match与search的区别在于:match需要整个字符串全部符合正则表达式,search只要有一个子串符合就可以了!

matchAll与searchAll的例子:

  1. function main(parm)
  2. {
  3. var regex = new RegEx("([a-z]+)(\d+)");
  4. var arr = regex.matchAll("cbrother233");
  5. print arr.size();
  6. for(var i = 0 ; i < arr.size() ; i++)
  7. {
  8. print arr[i];
  9. }
  10. arr = regex.searchAll("cbrother233");
  11. print arr.size();
  12. for(var i = 0 ; i < arr.size() ; i++)
  13. {
  14. print arr[i];
  15. }
  16. }

结果:

  1. matchAll size:3
  2. cbrother233
  3. cbrother
  4. 233
  5. searchAll size:3
  6. cbrother233
  7. cbrother
  8. 233

replace例子:

  1. function main(parm)
  2. {
  3. var regex = new RegEx("cbrother");
  4. print regex.replace("cbrother233","replace");
  5. regex = new RegEx("(.{3})(.{2})_(\\d{3})");
  6. print regex.replace("cbrother_233!","$1$3");
  7. print regex.replace("cbrother_233!","$1$3$2");
  8. }

结果:

  1. replace233
  2. cbroth233!
  3. cbroth233er!