正则表达式中的()[]{}这三种括号正常有什么区别
正则表达式中的()[]{}这三种括号一般有什么区别
来源: 百度知道
写道
()这种括号,会分配存储空间,可以用$1取得里面的数据
[]用来自定义能够匹配 '多种字符' 的表达式。比如[mike]匹配,m,i,k,e,这4个字母,这里注意是单个字符不能匹配一个单词mike,如果要匹配一个单词可以这样写(mike),如果不需要分配存储空间可以直接写mike.
{}修饰匹配次数的符号。a{0,1}a至少出现0次或最多1次,第二次出现则不匹配了a{2,5}a至少出现2次或最多5次.
[]用来自定义能够匹配 '多种字符' 的表达式。比如[mike]匹配,m,i,k,e,这4个字母,这里注意是单个字符不能匹配一个单词mike,如果要匹配一个单词可以这样写(mike),如果不需要分配存储空间可以直接写mike.
{}修饰匹配次数的符号。a{0,1}a至少出现0次或最多1次,第二次出现则不匹配了a{2,5}a至少出现2次或最多5次.
举个栗子:
// 去除连续的重复wbr换行符
html = html.replaceAll("(<wbr>)\\1+", "$1");
// 去除img标签的ALT属性
html = html.replaceAll("((?i)<img[^>]*?)\\s+ALT\\s*=\\s*\\S+","$1");