1

6〜12文字をチェックする正規表現を作成しようとしています。1つは数字で、残りは任意の文字で、スペースはありません。正規表現はこれを行うことができますか?私はObjective-cでこれを実行しようとしていますが、正規表現にまったく精通していません。私はいくつかのチュートリアルを読んでいますが、ほとんどは数字の単純なケースまたは数字のセットを照合するためのものですが、私が探しているものとは正確には一致しません。メソッドでできるのですが、遅すぎるのではないかと思っていたので、何か新しいことを学んでみようと思いました。

asdfg1 == ok
asdfg 1 != ok
asdfgh != ok
123456 != ok
asdfasgdasgdasdfasdf != ok
4

4 に答える 4

1

この正規表現を使用する^(?=.*\d)(?=.*[a-zA-Z])[^ ]{6,12}$

于 2012-09-14T17:42:21.447 に答える
0

「キャラクター」とは「手紙」という意味のようですね。そして(それを指摘してくれたburning_LEGIONに感謝します)1桁しかないかもしれませんか?

その場合は、

^(?=\D*\d\D*$)[^\W_]{6,12}$

説明:

^             # Start of string
(?=\D*\d\D*$) # Assert that there is exactly one digit in the string
[^\W_]        # Match a letter or digit (explanation below)
{6,12}        # 6-12 times
$             # End of string

[^\W_]少し奇妙に見えるかもしれません。それはどのように機能しますか?まあ、\w任意の文字、数字、またはアンダースコアに一致します。\W一致\wしないものすべてに一致します。したがって[^\W]、(「英数字/アンダースコアではない任意の文字に一致する」という意味)は基本的にと同じですが、この文字クラスに\w追加することで、許可される文字のリストからアンダースコアを削除できます。_

于 2012-09-14T18:00:30.607 に答える
0

私は試しませんでしたが、ここに答えがあると思います

(^[^\d\x20]*\d[^\d\x20]*$){6,12}
于 2012-09-14T17:50:18.273 に答える
0

これは1桁 ^[^\d\x20]{0,11}\d{1}[^\d\x20]{0,11}$の場合ですが、長さを6〜12に制限することはできません。他の関数を使用して最初に長さを確認し、6〜12の場合は、私が書いたこの正規表現の魔女で確認してください。

于 2012-09-14T19:10:52.477 に答える