0

正規表現は私にとって常に暗い芸術であり、私はプログラミングからあまりにも長い間離れていましたが、これは不可能であるか、私が望むほど簡単ではありません.

次のテキストを検索するために正規表現に書き込もうとしています

 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

そして今、私は立ち往生しています。感謝して受け取った助けや指針。

4

2 に答える 2

0

これを試してください:(必要なものを推測した場合...) -更新

([A-Z]{3}\s([A-Z]{3}|([\*]{2,3}\s){1,2})?)+

デモ :

http://regexr.com?30po5

一致 :

MIA *** LHR **
JFK JFK
SIN *** *** SYD *** SIN *** LHR **
BOS *** LHR
GRU *** ***
DME
于 2012-04-27T10:52:41.787 に答える
0

これは、次の例で機能します。

[A-Z]{3}(((?:\s*[*]{3}\s*)+([A-Z]{3})+)*(\s*[*]{2,3}\s*?)?)|[A-Z]{3}(\s*[A-Z]{3})?

ただし、一致させたいものに関してより厳密なルールを指定することをお勧めします-これを行わないと、ここで行っているのは推測だけであり、思いついた正規表現は他の例では機能しない可能性があります。違う。

于 2012-04-27T12:48:36.197 に答える