【发布时间】:2017-10-10 02:46:57
【问题描述】:
我有这个正则表达式来匹配以下模式:
/(((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})开头的ANY字符串,例如:
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,但结果不一致。
【问题讨论】:
-
“结果不一致”不是问题描述。见minimal reproducible example。
-
演示链接......
-
stackoverflow.com/help/how-to-ask:如果可以创建一个可以链接到的问题的实时示例(例如,在sqlfiddle.com 或jsbin.com),那么就这样做 - 但是 还将代码包含在您的问题本身中。
-
\s{1}在功能上与\s相同,但有些人更喜欢在视觉上更明确。我不喜欢它,但它向读者强调恰好一个,所以它做了某事。这是否是一件好事是有争议的,但我不会为此敲别人。 -
您在括号中包含
^的任何特殊原因?
标签: javascript regex pattern-matching