正则表达式分组的详细解决方案
如果你想匹配3个数字,正则表达式可以写如下:
{ { 3 }
上面的代码使用一个重复的量词来匹配3位数。
但在实际应用中,常常需要重复一些字符,例如,我想重复ab的两个字符,下面的代码不合适。代码如下:
ab { 3 }
上述正则表达式只能重复3次B。
为了重复多个字符,可以使用一个小括号来引用一个定子表达式或一个分组来实现这个函数,例如:
(ab){ 3 }
上述规则可以重复AB
所谓的分组就是使用括号来包含一些项,使它们成为独立的逻辑域,这样我们就可以处理像处理一个独立单元那样的括号。
下面是一个代码实例:
( 3 D { }。){ 3 } D 3 } {
以上是一个简单的IP匹配正则表达式,由圆括号封装的内容被作为独立的逻辑域操作。
分组作用:
在正则表达式中,分组是非常重要的,下面是对函数的简单介绍。
1。到原来的分组函数:
一个单独的项目组,这样子表达式的合成,所以,它可以作为一个单一的特点,应用|,+,*或元字符操纵他们。
示例代码如下所示:
var str =我爱javascript和java;
console.log(str.match( / java(脚本)/ GI));
从以上代码的运行结果,我们可以看到,正则表达式可以匹配字符串的Javascript或java,因为分组是在正则表达式中使用和重复使用的量词。你可以重复前面的子表达式0或1次。
两。定义子模式:
另一组是在模型的完整性的一个非常重要的角色定义子模式。
当正则表达式成功地与目标字符串匹配时,可以从目标字符串中提取与括号中的单词表达式匹配的部分。
如果我们匹配一个以数字开头并跟随一个或多个不区分大小写的字母的字符串,正则表达式可以像这样写。
/ D { a-za-z } + /
如果我们真正关心并需要初始数字,我们可以将正则表达式的数字部分放入圆括号中,并且我们可以从检索的匹配中提取数字。
/( D){ a-za-z } + /
三。引用子表达式:
正则表达式的语法可以参考在相同的表达后前子。这是由下列数字实现。这个数字指定的正则表达式的括号的位置, 1是带括号的子表达式的第一,自然 2是括号中的第二个。
特别注意:由于子表达式可以嵌套,该子表达式的位置计算只要确定是左括号的位置。例如:
/(java(脚本))/
在上面的正则表达式,嵌套的子表示可以在 2表达。
引用子表达式不匹配模式的借鉴,但借鉴到孩子匹配的内容。一般来说,引用一个子表达式通常是用来实现一个约束,看下面的代码:
({ ){ 1
通常,引号是匹配的。如果前面是双引号,结尾也是双引号。前面是一个单引号,所以结尾也必须是一个引号,并且没有其他引号可以出现在字符串的中间,例如,
欢迎你
欢迎你
上面的正则表达式实现了这个函数。当以前的子表达式匹配单引号,后者 1也代表一个单引号。如果子项表示双引号匹配,则后面的2为双引号。
非参照分组:
分组将占用一定数量的系统资源,特别是正则表达式较长时,匹配速度会降低,有时只需要设置一个组,不需要引用,使用非引用类型组是一个不错的选择。
/((:java脚本))/
上面的规则是使用一个非引用组,只在左括号后面加一个:你可以。