Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript正则表达式问题_Javascript_Regex - Fatal编程技术网

Javascript正则表达式问题

Javascript正则表达式问题,javascript,regex,Javascript,Regex,正则表达式中()的意图是什么?谢谢 pattern.replace(/\{(\d+)\}/g, function(pattern, index) { return args[index].toString(); }); 注:args类似于[“3”、“dl1”、“42”]它创建了一个组 什么是args?它创建一个组 什么是args?它用于管理分组 分组的目的是对搜索和替换进行反向引用。使用正则表达式可以使jhondoe变成Doe,Jho

正则表达式中()的意图是什么?谢谢

pattern.replace(/\{(\d+)\}/g,
        function(pattern, index) { 
            return args[index].toString(); 
        });
注:args类似于[“3”、“dl1”、“42”]

它创建了一个组

什么是
args

它创建一个组


什么是
args

它用于管理分组

分组的目的是对搜索和替换进行反向引用。使用正则表达式可以使
jhondoe
变成
Doe,Jhon

要实现这一点,您可以使用带有两个GRUP的Regex
(\w*)(\w*)
,并将其替换为
$2,$1


通常,第一个组(0)引用正则表达式的整个匹配项,即根据表达式中的顺序编号的其他组。

它用于管理分组

分组的目的是对搜索和替换进行反向引用。使用正则表达式可以使
jhondoe
变成
Doe,Jhon

要实现这一点,您可以使用带有两个GRUP的Regex
(\w*)(\w*)
,并将其替换为
$2,$1


通常,第一个组(0)引用正则表达式的整个匹配项,即根据表达式中的顺序编号的其他组。

+1:但我要补充的是,并非所有组都是捕获组。有些只是影响*,+,?,| etch的操作。你能举个例子来说明你的答案吗?谢谢。我使用一个正则表达式(Java格式,与Javascript非常相似)来解析jdbc oracle连接链:
jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=test)(PORT=1521))(CONNECT\u DATA=(SID=sidbdd))
我需要它来定义主机,所以我会编写
*.*主机=(\w*)\).
此正则表达式将忽略几乎所有内容,直到找到
HOST=
,然后,它将找到所有内容,直到找到
并忽略链的其余部分。为了引用我的主机部分,我将使用$1,它将返回
test
。如果我需要正则表达式子集的进一步匹配,我将使用更多的组,例如
(.@.*)主机=(\w*)\)(.*)
将返回:$0-->
jdbc:oracle:thin:@(描述=(地址=(协议=TCP)(主机=测试)(端口=1521))(连接数据)=(SID=sidbdd))
$1-->
jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(
$2-->
test
$3-->
(PORT=1521))(CONNECT_DATA=(SID=sidbdd))
+1:但我要补充的是,并不是所有的组都在捕获组。有些组只会影响*、+、?、| etch的操作。我可以为您的答案举个例子吗?谢谢。我使用正则表达式(Java格式,非常类似于Javascript)解析jdbc oracle连接链:
jdbc:oracle:thin:@(描述=(地址=(协议=TCP)(主机=测试)(端口=1521))(CONNECT_DATA=(SID=sidbdd))
我需要它来定义主机,所以我会编写
*.*host=(\w*)\).
这个正则表达式将忽略几乎所有内容,直到找到
host=
,然后它将找到所有内容,直到找到
并忽略链的其余部分。若要引用主机部分,我将使用$1,它将返回
test
。如果需要进一步匹配正则表达式的子集,我将使用更多组,例如
(.*@.*)主机=(\w*)\)(.*)
将返回:$0-->
jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=test)(PORT=1521))(CONNECT_DATA=(SID=sidbdd))
$1-->
jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(
$2-->
test
$3-->
(PORT=1521))
类似于[“3”、“dl1”、“42”]的内容您好,在这里创建组的目的是什么?类似于[“3”、“dl1”、“42”]嗨,在这里创建小组的目的是什么?