正则表达式混淆

时间:2017-07-28 08:47:10

标签: javascript regex google-sheets

所以我试图使用Googles regexextract

A1B2-DHSJDH472847XXX-FJDN REV : W25

我试过了:

Regexextract (A1,"^(?: .{4}-).*(?:\s).*$")

这只是给了我整个字符串,仍然捕获要匹配的非捕获组。

预期结果:DHSJDH472847XXX-FJDN

1 个答案:

答案 0 :(得分:0)

请注意,如果模式中没有捕获组,REGEXEXTRACT将返回整个匹配项,如果模式中定义了捕获组,则仅捕获组内容。您的^(?: .{4}-).*(?:\s).*$模式匹配整个字符串而不捕获任何部分,因此,它不能按预期工作。请注意,没有设置量词的非捕获组或没有任何交替运算符的非捕获组是多余的。 (?:\s)等于\s

您可以使用

=REGEXEXTRACT(A20,"^[^-]*-(\S+)")

enter image description here

模式详情

  • ^ - 字符串开头
  • [^-]* - 除-
  • 以外的0个字符
  • - - 字面连字符
  • (\S+) - 捕获第1组(与此组匹配的文本将是输出,其余部分将被省略)与1个或多个非空白字符匹配。