次のものだけを受け入れる式が必要です。
- 数字
- 通常の文字(特殊文字なし)
- -
スペースも許可されていません。
例:正規表現は次のように一致する必要があります。
this-is-quite-alright
一致してはいけません
this -is/not,soålright
次のものだけを受け入れる式が必要です。
スペースも許可されていません。
例:正規表現は次のように一致する必要があります。
this-is-quite-alright
一致してはいけません
this -is/not,soålright
次を使用できます。
^[A-Za-z0-9-]*$
これは、大文字/小文字(ASCII AZ)、数字(ASCII 0-9)、およびダッシュで完全に構成されている、空の可能性がある文字列と一致します。
これは一致します(rubular.comで見られるように):
this-is-quite-alright
and-a-1-and-a-2-and-3-4-5
yep---------this-is-also-okay
そして拒否します:
this -is/not,soålright
hello world
説明:
^
と$
はそれぞれ文字列アンカーの始まりと終わりです
[...]
キャラクタークラスです
a-z
、、文字クラスで範囲を定義しA-Z
ます0-9
-
クラスの最後の文字は文字通りのダッシュであるため*
ゼロ以上の繰り返しです仕様は明確ではありませんでしたが、-
「単語」を区切るためだけに使用される場合、つまり、二重ダッシュ、末尾ダッシュ、先行ダッシュがない場合、パターンはより複雑になります(わずかに!)
_"alpha"_ separating dash
/ \ /
^[A-Za-z0-9]+(-[A-Za-z0-9]+)*$
\__________/| \__________/|\
"word" | "word" | zero-or-more
\_____________/
group together
これは、少なくとも1つの「単語」である文字列に一致します。単語は1つ以上の「アルファ」で構成され、「アルファ」は文字と数字で構成されます。より多くの「単語」を続けることができ、それらは常にダッシュで区切られます。
これは一致します(rubular.comで見られるように):
this-is-quite-alright
and-a-1-and-a-2-and-3-4-5
そして拒否します:
--no-way
no-way--
no--way
[A-z0-9-]+
しかし、あなたの質問は文字と数字を要求し、ダッシュを含む例があるので混乱します。
これはコミュニティウィキであり、この「URL/SEOの長打」トピックに関する関連する質問へのリンクをまとめる試みです。コミュニティは貢献するように招待されています。
-this--is---a-test--
になりますthis-is-a-test
spam123-spam-eggs-eggs1
拒否eggs1-
を許可する-spam123
、、spam--spam