1

有効なすべての国際線のフライト番号とフライト コードに一致する正規表現を作成しています。ウィキペディアによると、有効なフライト コードの形式はXX(a)NNNN(a)、、、、X = [A-Za-z0-9]およびa = [A-Za-z]ですN = [0-9]

フライト コードと番号の両方を一致させたいので、XX(a)and を(a)オプションにしました。1 つ目(a)は完全にオプションですが、存在する場合は が一致するXXために最初の 2 つが存在する必要があります。(a)以下の正規表現を作りましたが、できれば短くしたいです。

^(([A-Za-z0-9]{2}([A-Za-z])?)?)([0-9]{4})(([A-Za-z]{1})?)$

(a)数字の前後のグループなど、いくつかのグループが同じなので、短くするために、一致するグループを作成することを考えました。この正規表現をどのように短縮しますか?

4

1 に答える 1

2

これは Javascript と Ruby の両方で使用できます。

/^([^\W_]{2}[a-z]?)?(\d{4})[a-z]?$/i

i大文字と小文字を区別しないためのフラグであり、それでも数字を取得できます。フライト コード全体が配列の最初の要素にあり、数字が 2 番目の要素にあります。

はie[^\W]に相当するため、外国語の文字を数えない場合、使用は外国語の文字を無視することだけを意味します。\w[a-z0-9_][^\W_][a-z0-9]

于 2013-10-03T19:14:37.643 に答える