gpt4 book ai didi

JavaScript 正则表达式 : ignore subgroup when matching

转载 作者:行者123 更新时间:2023-11-27 23:05:36 24 4
gpt4 key购买 nike

我正在尝试将字符串与中间的可选部分相匹配。

示例字符串是:

20160131_abc.pdf
20160131_abc_xx.pdf
20160131_def.pdf

结果应包含文件名(不带可选的 _xx)。

到目前为止我所拥有的:

/[0-9]{8}_(abc(_xx)?|def)\.pdf/i

这种方法可行,但会返回第二个字符串的名称为 abc_xx - 我只想要其中的 abc 部分。是否有可能忽略子组?

最佳答案

您可以使用 (?=\.pdf) 前瞻来限制 def 部分,这将要求 .pdf 出现在 def 如果 .pdf 之前有 def 添加可选组 (?:_xx)? .pdf 之前:

[0-9]{8}_(abc|def(?=\.pdf))(?:_xx)?\.pdf

请参阅regex demo

说明:

  • [0-9]{8} - 8 位数字
  • _ - 下划线
  • (abc|def(?=\.pdf)) - 捕获与 abcdef 匹配的组 1 (def 仅当 .pdf 紧随其后时才匹配)
  • (?:_xx)? - 可选的 _xx 部分,如果前面带有 abc,则只能出现在匹配中(不能出现在捕获中) >
  • \.pdf - 文字 .pdf 子字符串

关于JavaScript 正则表达式 : ignore subgroup when matching,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36619162/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com