背景
我想从字符串中提取一条信息。例如,
禁止停车(卫生布鲁姆符号)8-9:30 AM TUES& FRI
因为它只有TUES
和FRI
。这不是一系列的日子,所以我想得到['TUES', 'FRI']
然而,对于像
这样的东西2 HOUR PARKING 9AM-5PM MON THRU SAT
结果将是一段天数
['MON', 'TUES', 'WED', 'THURS', 'FRI', 'SAT']
我有这个正则表达式适用于一系列天,但我想修改为除了一个规则。
\b((?:(?:MON|MONDAY|TUES|TUESDAY|WED|WEDNESDAY|THURS|THURSDAY|FRI|FRIDAY|SAT|SATURDAY|SUN|SUNDAY)\s*)+)(?=\s|$)
适用于
NO STANDING 11AM-7AM MON SAT
提取MON
和SAT
。但我不希望它匹配
NO PARKING (SANITATION BROOM SYMBOL) 8-9:30AM TUES & FRI
因为我有另一个我希望它匹配的正则表达式。
答案 0 :(得分:2)
如果你有很多正则表达式,我会建议按特定顺序运行它们(给它们一个优先级),这样更具体的正则表达式/更重要的正则表达式将首先匹配。这样你可以停止匹配,如果一个正则表达式匹配,在你的情况下是“其他”正则表达式。