指定された文字列が有効な形式であることを確認する式を作成しようとしていますが、数か月以内に正規表現を使用しないと、学んだことをすべて忘れて再学習する必要があるようです。
私の式は次のような形式に一致するはずです: 010L0404FFCCAANFFCC00M000000XXXXXX 4 つの区切り文字は (L、N、K、M) で、0-9A-F の 16 進数の範囲に収まらず、一意性がその順序であるか、リストにないかを示します。各区切り文字は一度しか存在できません!
これは次のように分解されます。
- 3 桁の数字で始まります。これは単に ^([0-9]{3}) であり、常に必要です。
- 2 番目のセットは L で始まり、2 桁 + 2 桁 + 16 進数の 6 である必要があり、オプションです
- 3 番目のセットは N で始まり、6 桁の 16 進数である必要があり、オプションです
- 4 番目のセット K は任意の数値であり、オプションです。
- 5 番目のセットは M であり、任意の 6 つの 16 進数または XXXXXX を使用して、何も示さないことを示します。336699 (6) または 336699XXXXXXFFCC00 (18) のように、0 を除く 6 の倍数にする必要があり、オプションです。
私が理解できない最も難しい部分は、その順序でそれを必要とし、倍数で、L区切り文字が前に来なければならず、そこにある場合は常にKが必要です(理由は、同じ文字列のバリエーションを取得しないためです。つまり、同じことを意味します)区切り文字が入れ替わったもの)。私はすでにそれを解析できます。文字列が正しい形式であることを確認したいだけです。
どんな助けでも感謝します、ありがとう。