简体   繁体   English

如何将此正则表达式修改为与Python中的“&”不匹配?

[英]How do I modify this regex to not match '&' in Python?

Background 背景

I would like to extract a piece of information out of a string. 我想从字符串中提取一条信息。 For example, 例如,

NO PARKING (SANITATION BROOM SYMBOL) 8-9:30AM TUES & FRI 禁止停车(卫生布鲁姆符号)8-9:30 AM TUES&FRI

Because it's only TUES and FRI . 因为它只有TUESFRI It's not a range of days so I would like to just get ['TUES', 'FRI'] 这不是一天的日子,所以我想得到['TUES', 'FRI']

However, for something like 但是,对于类似的东西

2 HOUR PARKING 9AM-5PM MON THRU SAT

It would be a range of days so the result would be ['MON', 'TUES', 'WED', 'THURS', 'FRI', 'SAT'] 这将是一段天,所以结果将是['MON', 'TUES', 'WED', 'THURS', 'FRI', 'SAT']

I have this regex which works with a range of days but I would like to modify to except just one rule. 我有这个正则表达式适用于一系列的日子,但我想修改为除了一个规则。

\b((?:(?:MON|MONDAY|TUES|TUESDAY|WED|WEDNESDAY|THURS|THURSDAY|FRI|FRIDAY|SAT|SATURDAY|SUN|SUNDAY)\s*)+)(?=\s|$)

It works with 它适用于

NO STANDING 11AM-7AM MON SAT

which extracts MON and SAT . 提取MONSAT But I don't want it to match 但我不希望它匹配

NO PARKING (SANITATION BROOM SYMBOL) 8-9:30AM TUES & FRI

Because I have another regex which I want it to be matched. 因为我有另一个正则表达式,我希望它匹配。

If you have many regex I would suggest running them in specific order (give them a priority) such that the more specific regex / more important ones will match first. 如果你有很多正则表达式,我建议按特定顺序运行它们(给它们一个优先级),这样更具体的正则表达式/更重要的正则表达式将首先匹配。 That way you could stop matching if one regex matched, in your case the "other" regex. 这样你可以停止匹配,如果一个正则表达式匹配,在你的情况下是“其他”正则表达式。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM