2

形式のバーコードがあります123456########。つまり、最初の 6 桁は常に同じで、その後に 8 桁が続きます。変数がその形式に一致することを確認するにはどうすればよいですか?

4

4 に答える 4

5

123456\d{8}

123456  # Literals
\d      # Match a digit
  {8}   # 8 times

{8}静的な数字の後の数字に応じて、任意の数字に変更できます。

Regexr では、正規表現を試すことができます。

于 2012-06-26T17:53:55.560 に答える
5

言語を指定していませんが、正規表現です。構文は実装全体で比較的均一であるため、次のようなものが機能するはずです。123456\d{8}

  • \d数字を示し、通常は set と同等[0-9]です。
  • {8}直前の文字セットが正確に 8 回繰り返されることを示します。

入力の受信方法によっては、正規表現を固定したい場合があります。したがって:

^123456\d{8}$

where^は、行または文字列の先頭と$一致し、末尾と一致します。または、バーコード文字列が適切に区切られるように、単語境界を使用することもできます。

\b123456\d{8}\b

where\bは空の文字列に一致しますが、単語の端にのみ一致します (通常、英数字とアンダースコアだけで構成されるシーケンスとして定義されますが、これはロケールに依存する場合があります)。

于 2012-06-26T17:54:42.283 に答える
3
123456\d{8}

するべきです。これは次のように分類されます。

  • 123456 - 固定ビット、明らかにこれを固定ビットに置き換えます。ここで特殊文字をエスケープして正規表現することを忘れないでください。数字だけで問題ないはずです
  • \d - 数字
  • {8} - 前の要素を繰り返さなければならない回数。この場合は 8 回です。

{8}範囲内に最小数または最大数がある場合は 2 桁を取ることができるため、前の要素を 6 ~ 8 回繰り返す必要がある場合に行うことができます{6,8}

于 2012-06-26T17:54:12.890 に答える
2

あなたがそれを説明する方法、それはただ

^123456[0-9]{8}$

...123456既知の 6 桁の数字に置き換えます。あなたが使用している正規表現のフレーバーがわからず、一部のフレーバーで非アラビア数字を許可するため、[0-9]代わりに使用しています(懸念がある場合)。\d\d

于 2012-06-26T17:54:45.340 に答える