请求正则表达式改进

时间:2015-03-05 02:28:43

标签: regex

我有以下文字

Dallas*  Garland - 7109-GAR * Closed* On Alert* Inclement Weather Closing*
Dallas*  Plano - 7207-PLA * Closed* On Alert* Power Outage*
Nashville*  Louisville - 7174-LOU * Closed* On Alert* Inclement Weather closing*
Dallas*  Ft. Worth/ Arlington - 7112-FWA * Closed* On Alert* Inclement Weather closing*
Nashville*  Memphis - 7218-MEM * Closed* On Alert* Inclement Weather Closing*
Phoenix*  Oklahoma City - 7248-OKC * Closed* On Alert* Inclement Weather Closing*
Nashville*  Cincinnati - 7175-CIN * Closed* On Alert* Inclement Weather Closing*
Phoenix*  Tulsa - 7191-TUL * Closed* On Alert* Inclement Weather Closing*

我希望拉出XXXX-XXX部分以及一个单词..例如天气或电力,只要它们之间是封闭的......所以这就是我所拥有的...它的工作原理..只是似乎太通用了......而且我不确定我是否能从中得到最好的正则表达式。

所以我想要回归的基本上就是 7109-GAR天气 7207-PLA Power 等...

(\d{4}-.{3}|\bCAF\b|\bHome Office\b)(?:.+)(?=\bClosed\b)(?:.+)(\bWeather\b|\bPower\b)

所以我们可以在Regex101.com上添加这个作品,但不能在powershell中的字符串搜索中添加。

1 个答案:

答案 0 :(得分:0)

我认为你要求更短更简单的正则表达式,这就是我想出来的。

/(?P<code>\d{4}-[A-Z]{3}).+?Closed.+?(?P<word>Weather|Power)/ig