我想从一堆句子中提取某些句子。这些句子有一个特定的模式,但我的正则表达式在遇到和字母数字字符串时失败:见下面的示例测试字符串
"""Dear User,
Slow movt is at placeA ( Ohio | Missourri ) : placeB all d way to placeC is a no go area. wetin dey happen ooo. cc ( 2014-11-19 06:30 PM ) //passes my regex
Slow movt is at PlaceD ( Denver | Houston ) : .3 50pm. placeE> > ketu b2b //t.co/a7wmlxo6eu ( 2014-11-19 03:51 PM ).//fails my regex but passes if I remove alphanumerals
Average blah blah blah (a|b) //t.co/a7nmloo6eu ( 2014-11-13 03:16 PM ).// passes my regex if no alphanumerals
yours sincerely
TL"""
这是我在我的正则表达式中提出的:
((Slow|Average|Fast)\D+).(\(\s?\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}\s[AP]M\s\)\.)
任何提供的帮助都非常感谢。请注意我需要提取所有匹配项,因此上述字符串的完美解决方案将产生3个匹配项,不包括匹配项中的"Hi User"
和"Your sincerely TL"
。
答案 0 :(得分:0)
\D+
仅匹配非数字,因此在1pm
上失败。
你能简单地匹配"任何"?
((Slow|Average|Fast).*)(\(\s?\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}\s[AP]M\s\)\.)
答案 1 :(得分:0)
根据您当前声明的要求
((Slow|Average|Fast).+)(\(\s?\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}\s[AP]M\s\)\.?)
确实有效:RegEx101。
如果您有更多限制要求,请发表评论。