Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.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
如何使用regexp捕获预定义输入的首次出现?_Regex - Fatal编程技术网

如何使用regexp捕获预定义输入的首次出现?

如何使用regexp捕获预定义输入的首次出现?,regex,Regex,我正在学习regexp。我的regexp是: /^([0-5][0-9]|60):/g 我的示例数据是:60:40:60 Lua 一切都很好。现在,我想提取之前的第一个匹配项:。i、 e:60但是当我试着用1美元的时候。它返回6040。有什么想法吗 那一个呢: ^(?:[0-5][0-9]|60)(?=:) 或者以验证的方式,您可以尝试: ^(?:[0-5][0-9]|60)(?=:\d{2}:\d{2}.*) 说明: ^(?[0-5][0-9]| 60)-与您的相同 (?=:\d{2

我正在学习regexp。我的regexp是:

/^([0-5][0-9]|60):/g 
我的示例数据是:
60:40:60 Lua

一切都很好。现在,我想提取之前的第一个匹配项:。i、 e:60但是当我试着用1美元的时候。它返回
6040
。有什么想法吗

那一个呢:

^(?:[0-5][0-9]|60)(?=:)

或者以验证的方式,您可以尝试:

^(?:[0-5][0-9]|60)(?=:\d{2}:\d{2}.*)
说明:

  • ^(?[0-5][0-9]| 60)
    -与您的相同
  • (?=:\d{2}:\d{2}.*)
    --正向前瞻,以确保前一个模式后面紧跟着2位冒号2 digt,后面紧跟着长度为零或更长的字符串的其余部分
  • 由于它似乎不是根据您的需要提供服务,因此有一个解决方案可以捕获3个组,其中组1以您想要的数字开始:

    const regex=/^([0-5][0-9]| 60):([0-5][0-9]| 60):([0-5][0-9]| 60)。*$/gm;
    常量str=`60:40:60 Lua`;
    让m;
    if((m=regex.exec(str))!==null){
    console.log(m[1]);
    console.log(m[2]);
    console.log(m[3]);
    
    }
    您可以使用$1共享您的代码吗,第一组包含60个。我试图在以下位置测试代码:您正在测试吗?不是我的否决票,但这并不能真正解决OP尝试中可能出现的问题。@如果您查看底部我的答案中的代码片段并将其与OP的引用相匹配,请查看三倍“现在,我要提取之前的第一个匹配项:。i、 e:60但是当我试着用1美元的时候。它返回6040。有什么想法吗?“那么你能告诉我他想说什么吗???语言没有设定……对,这就是为什么我问你在回答中发布的代码是用哪种语言写的。我真的说不出来。这是纯JavaScriptThank。以前没有见过Javascript中的倒勾,但这可能只会暴露我的无知。也许更新a请回答这个问题。