(JFK)
正規表現のような文字列または正規表現を使用して、空港コードを見つけようとしています[FRA]
。
言及された空港コードが正しいかどうかを確認する必要はありません。中括弧には、ほぼすべての 3 つの大文字を含めることができます。
丸括弧では機能しますが、角括弧では機能しない私の現在のソリューションは次のとおりです。
[((\[]([A-Z]{{3}})[))\]]
ありがとう!
(JFK)
正規表現のような文字列または正規表現を使用して、空港コードを見つけようとしています[FRA]
。
言及された空港コードが正しいかどうかを確認する必要はありません。中括弧には、ほぼすべての 3 つの大文字を含めることができます。
丸括弧では機能しますが、角括弧では機能しない私の現在のソリューションは次のとおりです。
[((\[]([A-Z]{{3}})[))\]]
ありがとう!
正規表現が一致しすぎているようです。これを試してください:
^[(\[][A-Z]{3}[)\]]$
^
行の先頭に一致します (必要な場合と不要な場合があります)
[(\[]
(
または 一致する文字クラスです。[
[A-Z]{3}
大文字 3 文字に一致
[)\]]
)
または一致する文字クラスです。]
$
行末に一致します(必要な場合と不要な場合があります)
[
と]
は正規表現の特殊文字であり\
、リテラル文字が必要であることを示すためにa でエスケープする必要があることに注意してください。
お役に立てれば
(1) 単一の一致するグループ内の文字を一致させ、(2) 括弧または括弧 (それぞれの 1 つではなく) のみに一致させたい場合、それは非常に困難です。1つの解決策は次のとおりです。
.([A-Z]{3}).((?<=\(...\))|(?<=\[...\]))
最初の部分は文字と一致し、末尾の混乱は括弧/括弧をチェックします。
http://fiddle.re/u19vを参照してください- これは and に一致しますが、一致[ABC]
し(DEF)
ません(PQR]
(「正しい」答えは一致します)。
一致する括弧が必要な場合は、キャプチャする括弧を の外側に移動し.
ます。
(.[A-Z]{3}.)((?<=\(...\))|(?<=\[...\]))
ここでの根本的な問題は、正規表現が、値のペア (括弧や括弧など) を希望どおりに一致させるほど強力ではないことです。したがって、異なる種類のペアはそれぞれ個別に処理する必要があります。
理解しやすく、より方言にとらわれず、正しい:
^([A-Z][A-Z][A-Z])\|\[[A-Z][A-Z][A-Z]\]$
正規表現の方言によっては、括弧とパイプのエスケープを変更する必要がある場合があります。