2

正規表現をうまく機能させようとしています。式を 10 桁の英数字に制限することができました。

(^[a-zA-Z0-9]{10}+$)

ただし、任意の位置で 1 つだけ一致する $ 文字を許可しようとしています。

pQp3b8ar$8、またはのようなものに対して真になるはずk7DdRoB$5Wです。

4

2 に答える 2

4

3 つの一般的な注意事項:

^[a-zA-Z0-9$]{10}$
  • 括弧は必要ありません
  • {10}+あまり意味がありません。プラスを削除します (固定カウントで所有量指定子は必要ありません)。
  • ドル記号を許可したい場合は、文字クラスに追加するだけです

ドル記号を 1 回だけ許可するには、上記の拡張バージョンを使用できます。

^(?=[^$]*\$[^$]*$)[a-zA-Z0-9$]{10}$

(?=[^$]*\$[^$]*$)は、次のような先読みです。

(?=        # start look-ahead
  [^$]*    #   any number of non-dollar signs
  \$       #   a dollar sign
  [^$]*    #   any number of non-dollar signs
  $        #   the end of the string
)          # end of look-ahead

文字列の任意の文字を許可しますが、ドルは 1 回だけ許可します。


もう 1 つの変形は、次のように 2 つの先読みを使用することです。

^(?=[^$]*\$[^$]*$)(?=[a-zA-Z0-9$]{10}$).*

.*ここでは、2 つの条件が先読みによってチェックされるため、文字列の残りの部分と一致させるために the を使用できます。このアプローチは、パスワードの複雑さのチェックなどに役立ちます。

于 2012-11-18T06:11:42.837 に答える
0

任意の数の英数字の 2 つの文字列を含む文字列と$、途中に a を含む文字列との一致を試みることができます。

(^[a-zA-Z0-9]+\$[a-zA-Z0-9]+$)

正規表現の後、いつでも ten の長さを確認できます。

于 2012-11-18T06:15:25.463 に答える