0

文字とハイフンのみを許可する正規表現を作成する必要がありますが、ハイフンが必要です。

私は試した:

  • ^[a-z]+[a-z\-]+[a-z]+$(ハイフンなしの一致は合格)
  • ([A-Za-z\-]+)(ハイフンなしの一致も通過します)
  • [a-zA-Z][\-]+(動作しませんでした)

誰かが私にそれを書くことができますか?

前もって感謝します。

4

4 に答える 4

1

他の回答はどちらもハイフンを必要としません。試す[a-zA-Z-]*[-][a-zA-Z-]*

于 2012-09-17T02:58:10.000 に答える
0

先読みが必要です:

^(?=.*-)[a-zA-Z-]+$

その小さな表現(?=.*-)は「先読み」です。これは、.*-どこか先に表示される非消費的なアサーションです。つまり、「入力にはハイフンが必要です」という意味です。

また、最初または最後に置く場合、ハイフンはエスケープする必要のないリテラルハイフンです。それ以外の場合、ハイフンは範囲を示します。

于 2012-09-17T02:54:56.677 に答える
0

あなたの質問にすべての要件が記載されているかどうかはわかりません。あなたが言ったことすべてから離れて、このパターンは文字とハイフンを許可し、少なくとも1つのハイフンが必要です。

[a-zA-Z-]*-[a-zA-Z-]*

これにより、文字列「-」は大丈夫ですか?

于 2012-09-17T03:06:43.393 に答える
-1

あなたはどの言語を言っていなかったので、ここにJavascriptがあります:

Code-> "te-st".match(/[A-Za-z-]+/)
Result -> ["te-st"]
于 2012-09-17T02:56:06.620 に答える