Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.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和RegEx:match函数返回一个数组_Javascript_Regex - Fatal编程技术网

Javascript和RegEx:match函数返回一个数组

Javascript和RegEx:match函数返回一个数组,javascript,regex,Javascript,Regex,我有一个字符串: var doi_id= "10.3390/metabo1010001" 我只想匹配从末尾开始的第一系列数字 为此,我使用以下正则表达式: var doinumericpart = doi_id.match(/(\d*)$/); “问题”(或否)在于doinumericpart返回 1010001,1010001 而不是1010001,我不知道为什么 当我在这里尝试这个正则表达式时:一切似乎都很好 非常感谢您的帮助。match返回null或匹配数组。匹配的数量取决于正则表达

我有一个字符串:

var doi_id= "10.3390/metabo1010001"
我只想匹配从末尾开始的第一系列数字

为此,我使用以下正则表达式:

var doinumericpart = doi_id.match(/(\d*)$/);
“问题”(或否)在于doinumericpart返回

1010001,1010001
而不是1010001,我不知道为什么

当我在这里尝试这个正则表达式时:一切似乎都很好


非常感谢您的帮助。

match
返回
null
或匹配数组。匹配的数量取决于正则表达式中有多少捕获组。
[1]
上的项目将与您匹配,因此您可以执行以下操作:

var doinumericpart = doi_id.match(/(\d*)$/)[1]; //Access second item in the matches array

match
返回
null
或匹配数组。匹配的数量取决于正则表达式中有多少捕获组。
[1]
上的项目将与您匹配,因此您可以执行以下操作:

var doinumericpart = doi_id.match(/(\d*)$/)[1]; //Access second item in the matches array
match()。第一个元素是与模式匹配的整个子字符串,然后第一个元素包含子模式

在您的情况下,只需去掉
()
——您不需要它们,因为它们包含了整个模式

var doinumericpart = doi_id.match(/\d*$/)[0];
[0]
取消对数组的引用,以提供所需的确切元素。

match()
返回一个与预期相同的数组。第一个元素是与模式匹配的整个子字符串,然后第一个元素包含子模式

在您的情况下,只需去掉
()
——您不需要它们,因为它们包含了整个模式

var doinumericpart = doi_id.match(/\d*$/)[0];

[0]
取消对数组的引用,以提供所需的确切元素。

match
返回完整匹配和每个捕获组,如果没有匹配,则返回
null

如果您想提供一些上下文,这非常有用:

"10.3390/metabo1010001".match(/metabo(\d*)/)
// => ["metabo1010001", "1010001"]
  • metabo1010001
    是全部匹配项
  • 1010001
    是第一个捕获组

match
返回完整匹配和每个捕获组,如果没有匹配,则返回
null

如果您想提供一些上下文,这非常有用:

"10.3390/metabo1010001".match(/metabo(\d*)/)
// => ["metabo1010001", "1010001"]
  • metabo1010001
    是全部匹配项
  • 1010001
    是第一个捕获组

试着去掉
\d*
后面的括号,然后让
\d*$
试着去掉
\d*
后面的括号,然后让
\d*$
选择答案作为被接受的答案:)给这个人一些信任选择答案作为被接受的答案:)给这个人一些信任