g(reg,str);
返回结果ca
/c{3}/则会匹配三个连续的c,例如:
reg=/c{3}/;
str='cainiao';
execReg(reg,str);
返回结果cai
/c{4}/则会匹配四个连续的c,但在这个例子中没有匹配到,所以结果为空数组:
reg=/c{4}/;
str='cainiao';
execReg(reg,str);
返回结果[]
/c{n,}/表示至少n个c,例如:
reg=/c{1,}/;
str='cainiao';
execReg(reg,str);
返回结果c
reg=/c{2,}/;
str='cainiao';
execReg(reg,str);
返回结果ca
这个例子中,/c{2,}/会匹配至少两个连续的c,所以返回结果为"ca"。
除了{n}这样的数量词,还有{n,m}表示n到m个连续字符的匹配:
/c{1,3}/会匹配一到三个连续的c,例如:
reg=/c{1,3}/;
str='cainiao';
execReg(reg,str);
返回结果cai
这个例子中,最多匹配三个,所以返回"cai"。
正则表达式中的^和$符号
^表示行首,$表示行尾。在JavaScript中,如果不考虑多行模式,它们分别表示字符串的开始和结束。例如:
reg=/^c/;
str='cainiao';
execReg(reg,str);
返回结果c
这是因为'^'匹配到了字符串的开始位置的"c"。
reg=/c$/;
str='cainiao';
execReg(reg,str);
返回结果为空数组,因为"c"不在字符串末尾。
正则表达式的特殊字符
在正则表达式中,有些字符有特殊含义,如\.匹配任意字符,\d匹配数字,\w匹配字母、数字或下划线等。如果要匹配这些特殊字符本身,需要使用反斜杠\进行转义,例如:
reg=/\./;
str='c.a.iniao';
execReg(reg,str);
返回结果.,匹配到了"."字符。
正则表达式的修饰符
JavaScript中的正则表达式可以使用修饰符来改变其行为,常见的有:
- g:全局匹配,查找所有匹配项,而不仅仅是第一个。
- i:忽略大小写,使得匹配不区分大小写。
- m:多行模式,使^和$能够匹配每一行的开头和结尾。
例如,我们有一个包含大小写字母的字符串,可以使用/i/修饰符进行不区分大小写的搜索:
reg=/a/i;
str='AbCdefGhIjKlMnOpQrStUvWxYz';
execReg(reg,str);
返回结果A,匹配到了首字母"A"。
JavaScript中的正则表达式是强大的文本处理工具,通过各种组合和修饰符,可以实现复杂的字符串匹配和替换功能。熟练掌握正则表达式对于任何JavaScript开发者来说都是必备技能。在实际开发中,可以根据需求灵活运用这些知识,解决诸如数据验证、文本提取等各类问题。