正则表达式按特定顺序匹配至少一个字符集

时间:2015-01-12 18:42:57

标签: regex

我有一个字符串,其中包含一个天数的子字符串。此子字符串包含表示每个适用工作日的单个字符,可以包含工作日的任意组合,或者不包含工作日的字母N.每个工作日由第一个字符表示,除了星期四是R,工作日必须按顺序排列。

我尝试构建一个正则表达式来匹配这个子字符串,但我写的正则表达式是匹配空字符串。

我的正则表达式是:^ABC ((M?T?W?R?F?)|N) ABC$

我想要匹配:

  • ABC M ABC
  • ABC MWR ABC
  • ABC TRF ABC
  • ABC N ABC

等...

但不匹配:

  • ABC Z ABC
  • ABC TRM ABC

正则表达式正在执行此操作,但也匹配:

  • ABC ABC

有人有快速解决方法吗?

编辑:我忘了提到由于主机环境的限制,我被限制使用Microsoft VBScript正则表达式5.5库及其子集。

1 个答案:

答案 0 :(得分:0)

这也可以实现为:

^ABC (M?T?W?R?F?|N)(?<=\S) ABC$