ASP.NETアプリケーションにテキストボックスがあり、正規表現を使用してユーザー入力文字列を検証する必要があります。要件は、文字列を含むハイフンの総数が1つだけであることです。
一致:
- テスト
- テスト-こんにちは
- テスト-
- -テスト
不一致:
- テスト--こんにちは
- -テスト-
- test-hello--
このパターンを使用して、ハイフンが 0 個または 1 個の文字列に一致させることができます。
^[^-]*-?[^-]*$
説明:
文字列の先頭 ( ) から始まり、^
0 個以上の非ハイフン文字 ( [^-]*
) と、その後にオプションのハイフン ( -?
) が続き、その後に 0 個以上の非ハイフン文字 ( [^-]*
) と文字列の末尾( $
)が続きます。
ハイフンが 1 つだけの文字列に一致するこのパターン:
^[^-]*-[^-]*$
説明:
文字列の先頭 ( ) から始まり、^
0 個以上のハイフン以外の文字 ( [^-]*
) と、その後に必要なハイフン ( -
) が続き、その後に 0 個以上のハイフン以外の文字 ( [^-]*
) と文字列の末尾( $
)が続きます。
これを試して :
^[^-]*-?[^-]*$
[^-]
ハイフン以外の文字です。