Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/368.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 JS Regexp限制_Javascript_Regex - Fatal编程技术网

Javascript JS Regexp限制

Javascript JS Regexp限制,javascript,regex,Javascript,Regex,很简单的事情,但无论如何都找不到。。 如何限制regexp结果 示例字符串: io=G4-WfdxQHfBLrcB7AAAC; connect.sid=s%3AKdRP6Bh_bFsN_9Br4TfTykVSqenUgpDA.ighSSEVvoIInT%2Fc7z%2B2HaQQRzwS6p7gkEqJs2ZQbw1k; sid=s%3ACte80repoZLXoDfMqABqrNcg9qdO0a5L.1I%2BFc61dYeyqNhmjxCVMiZEPgLvgolvMIohLAx22WYo

很简单的事情,但无论如何都找不到。。 如何限制regexp结果

示例字符串:

io=G4-WfdxQHfBLrcB7AAAC; connect.sid=s%3AKdRP6Bh_bFsN_9Br4TfTykVSqenUgpDA.ighSSEVvoIInT%2Fc7z%2B2HaQQRzwS6p7gkEqJs2ZQbw1k; sid=s%3ACte80repoZLXoDfMqABqrNcg9qdO0a5L.1I%2BFc61dYeyqNhmjxCVMiZEPgLvgolvMIohLAx22WYo
我当前的regexp:

/\ssid=(.*)/
目前的结果是:

sid=s%3ACte80repoZLXoDfMqABqrNcg9qdO0a5L.1I%2BFc61dYeyqNhmjxCVMiZEPgLvgolvMIohLAx22WYo
s%3ACte80repoZLXoDfMqABqrNcg9qdO0a5L.1I%2BFc61dYeyqNhmjxCVMiZEPgLvgolvMIohLAx22WYo
预期结果是:

sid=s%3ACte80repoZLXoDfMqABqrNcg9qdO0a5L.1I%2BFc61dYeyqNhmjxCVMiZEPgLvgolvMIohLAx22WYo
s%3ACte80repoZLXoDfMqABqrNcg9qdO0a5L.1I%2BFc61dYeyqNhmjxCVMiZEPgLvgolvMIohLAx22WYo

我如何改进呢?

您可以将第一个捕获组用作

match = str.match(/\ssid=(.*)/);
// match[0] will contain match after the `=`
或者更简单地说,你可以写

match = str.match(/\ssid=(.*)/)[1];
示例

str = "io=G4-WfdxQHfBLrcB7AAAC; connect.sid=s%3AKdRP6Bh_bFsN_9Br4TfTykVSqenUgpDA.ighSSEVvoIInT%2Fc7z%2B2HaQQRzwS6p7gkEqJs2ZQbw1k; sid=s%3ACte80repoZLXoDfMqABqrNcg9qdO0a5L.1I%2BFc61dYeyqNhmjxCVMiZEPgLvgolvMIohLAx22WYo"  
match = str.match(/\ssid=(.*)/)[1];
// Output
// => s%3ACte80repoZLXoDfMqABqrNcg9qdO0a5L.1I%2BFc61dYeyqNhmjxCVMiZEPgLvgolvMIohLAx22WYo

(十)

匹配x并记住匹配。这些被称为捕获 括号

例如,/(foo)/匹配并记住“foo-bar”中的“foo”。这个 可以从结果数组的元素中调用匹配的子字符串 [1] ,…,[n]或从预定义的RegExp对象的属性$1, …9美元

捕获组将受到性能惩罚。如果你不需要 要调用的匹配子字符串,首选非捕获括号 (见下文)


捕获组在
=
之后获取所有内容。这不是你想要的吗?是的,我不知道怎么得到它,就像下面描述的。无论如何,谢谢。非常感谢,很有效。那是因为比喻?我组成小组,然后接受它,对吗?@Lazyexpert你明白了!!。由
(..)
中的模式匹配的每件事物都从1开始按编号分组。也就是说,第n个
()
形成了第n个捕获组,可以使用
匹配[n]