一、 Regex类
svlib中,提供了Regex类,来实现正则表达式。该类的new方法,是protected修饰的,所以该类不能通过new方法,创建对象。
text:正则表达式
runStr: Str类对象,对象中,保存有待匹配的字符串
其实,正则表达式的实现,还是通过调用DPI的方式,调用c实现的正则表达式匹配。linux提供了一个库函数,regexec,实现正则匹配。
二、方法
1. 创建
类中,提供了几个方法:
create,就是创建对象
setRE:设置正则表达式
setOpts:设置选项
setStr: 设置待匹配的字符串,传参是Str类对象
setStrContents: 设置待匹配的字符串,传参是string类型
2. 匹配
两个方法
test:匹配传参的Str类中的待匹配字符串
retest:匹配Regex类中的runStr中的待匹配字符串
3. 替换
将待匹配的字符串中符合正则表达式的,替换成传入的substStr字符串。
4. 获取结果
getMatchCount: 符合匹配的个数
getMatchStart: 符合匹配的起始位置, 传参表示第几次匹配
getMatchLength: 符合匹配的内容的长度, 传参表示第几次匹配
getMatchString: 符合匹配的字符串, 传参表示第几次匹配
三、 例子
从字符串中,将数字匹配出来。匹配出来的数字有两组。
执行结果:
匹配数为3,表示匹配到了3项。
第一项是匹配到的整个字符串
第二项是正则表达式中的第一个()中内容
第三项是正则表达式中的第二个()中内容
也可以对字符串进行替换
将字符串中的数字字符串,全部替换为987654
执行结果: