gpt4 book ai didi

javascript - 正则表达式以捕获组开始

转载 作者:行者123 更新时间:2023-11-30 15:00:14 25 4
gpt4 key购买 nike

我有这个正则表达式来匹配以下模式:

/(((fall|spring|summer)\s\d{4});|(waived)|(sub\s[a-zA-Z]\d{3}))/ig

应该匹配:

fall 2000;
spring 2019; waived
summer 1982; sub T676

不应匹配 任何 不是以第一个捕获组 ((fall|spring|summer)\s\d{4}) 开头的字符串,例如:

waived Fall 2014;
sub Fall 2011; waived

确保每个匹配模式都以此组开始 ((fall|spring|summer)\s\d{4})我尝试像这样在第一组前面附加 ^ /(^((fall|spring|summer)\s\d{4});|(waived)|(sub\s[a-zA-Z]\d{3}))/ig,但结果不一致。

Demo

最佳答案

你可以使用

/^(fall|spring|summer)\s\d{4};(?:.*(waived|sub\s[a-zA-Z]\d{3}))?/i

参见 regex demo .

详情

  • ^ - 字符串的开始
  • (fall|spring|summer) - 三种选择之一
  • \s - 一个空格
  • \d{4} - 4 位数字
  • ; - 一个分号
  • (?:.*(waived|sub\s[a-zA-Z]\d{3}))? - 一个可选序列:
    • .* - 除换行字符外的任何 0+ 个字符,尽可能多(如果您需要的值更接近字符串的开头,请替换为惰性 .* ?对应)
    • ( - 分组构造的开始
      • waived - waived 子串
      • | - 或者
      • sub - sub 子串
      • \s - 一个子字符串
      • [a-zA-Z] - 一个 ASCII 字母
      • \d{3} - 三位数
    • ) - 分组构造结束。

关于javascript - 正则表达式以捕获组开始,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46652824/

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