0

正規表現についてはよくわかりませんが、次のような文字列を検証する正規表現を作成したいと思います: `2012/018843/06.

それが将来誰かを助けることができるなら、それは南アフリカの会社登録番号のためだと言いたいです.

PHP 経由で処理でき、これと一致する正規表現を誰かが親切に投稿してくれたら、それは素晴らしいことです。そうでない場合は、この方法で正規表現を作成するための「基本」へのリンクをいただければ幸いです。

ありがとう。

編集:

私はこれを試しました:

[0-9/]{14}

しかし、長さが正確に一致しません。

4

2 に答える 2

3

数値の長さは固定されていますか?その後、試してみてください

preg_match('#^\d{4}/\d{6}/\d{2}$#', $string)

構文:

  • \dは、任意の10進数(0〜9)を表すエスケープシーケンスです。これは、次のように表すこともできます。[0-9]
  • {4}最後の式(この場合は10進数)は4回出現する必要があることを定義します。この式を使用すると、前の式が何度も繰り返されることを回避でき\d{4}ます。\d\d\d\d
  • ^文字列の始まりと文字列$の終わりを表します。これにより、この文字列に他の文字がないことが保証され、のような文字列abc2012/018843/06defは一致しなくなります。
于 2012-06-26T06:42:05.230 に答える
3

最も単純な形式では:

preg_match("|^\d{4}/\d{6}/\d{2}$|", $input);

\dトークンは任意の整数0〜9に一致します。内部の整数は{}、前のトークンから許可される繰り返しの数を示します。正規表現の区切り文字として使用しているため、/リテラルに一致します。/|

^トークンは、文字列の最初から一致し、文字列$の最後と一致するため、このように、aa2012/124521/11bb一致しないなどのようになります(それ以外の場合は、を削除すると一致します^$

于 2012-06-26T06:41:54.460 に答える