正则表达式对我来说总是一种黑暗的艺术,而且我已经离开编程太久了,但这要么不可能/我希望这么简单。
我正在尝试写入正则表达式来搜索以下文字
8825| - MIA *** LHR ** JFK JFK - DME - SIN *** *** SYD *** SIN *** LHR ** - - BOS *** LHR - - - GRU *** ***
它应匹配
MIA *** LHR ** or
JFK JFK or
SIN *** *** SYD *** SIN *** LHR ** or
BOS *** LHR or
GRU *** *** or
DME
这个
([A-Z]{3})\s(([A-Z]{3}|[*]{2,3})\s)+
匹配
中的所有部分DME
现在我被卡住了。感激地收到任何帮助或指示。
答案 0 :(得分:0)
试试这个:(如果我确实猜到了你可能需要的东西......) - 更新
([A-Z]{3}\s([A-Z]{3}|([\*]{2,3}\s){1,2})?)+
演示:
匹配:
MIA *** LHR **
JFK JFK
SIN *** *** SYD *** SIN *** LHR **
BOS *** LHR
GRU *** ***
DME
答案 1 :(得分:0)
这适用于给出的示例:
[A-Z]{3}(((?:\s*[*]{3}\s*)+([A-Z]{3})+)*(\s*[*]{2,3}\s*?)?)|[A-Z]{3}(\s*[A-Z]{3})?
但是,我建议您为要匹配的内容指定更严格的规则 - 如果不这样做,我们在这里所做的只是猜测,我们提出的正则表达式可能不适用于其他示例,如果它们是以任何方式不同。