• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:正規表現 英数字を1つ以上含む文字列)

正規表現 英数字を1つ以上含む文字列

このQ&Aのポイント
  • 半角英数字「0~9」「a~z」「A~Z」と、ハイフン「-」からなる文字列の正規表現での表し方が知りたいです。
  • ASP.NET(VB)での入力チェックに使用できる正規表現は、半角英数字とハイフンからなる文字列です。
  • 特定の条件を満たす文字列を検索や置換するために、ASP.NETで正規表現を使用する方法を知りたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • Werner
  • ベストアンサー率53% (395/735)
回答No.2

 (?!^[^0-9]*$)(?!^[^a-z]*$)(?!^[^A-Z]*$)^([a-zA-Z0-9-]+)$ でどう?試してないけど…。 でも、無理して1つの正規表現で表さなくても、 「0~9」が含まれているかどうか、「a~z」が・・・ と一つ一つチェックしても良いのでは? > そもそも「!」の意味が分かりません。否定でしょうか??  (?!regexp) で否定先読みを意味します。 http://www.kt.rim.or.jp/~kbk/regex/regex.html#NEGATIVELOOKAHEAD なお^は括弧内でも行頭の意味です。 (ANo.1は[^abc]との混同?)

noname#251034
質問者

お礼

回答ありがとうございました。 リンク先も大変参考になりました。

その他の回答 (2)

noname#39970
noname#39970
回答No.3

以下のテキストで検証 ABCDEFG abz3 -3aZGcE xa_DC agle40g 3920710 Da3-XcgE 2gE No1のパターンでは条件を満たさなかった("xa_DC"以外ヒット) No2のパターンでは希望通りのヒットをする模様

noname#251034
質問者

お礼

アドバイス&検証ありがとうございました。

回答No.1

^[a-zA-Z0-9\-]*[a-zA-Z0-9]{1,}[a-zA-Z0-9\-]*$ではだめですかね? ^が括弧内で否定の意味を持ちます。 括弧の外であれば^は行頭の意味になります。 !は・・・私の持つ知識では単なる文字だと思うのですが・・・ 英字の中に英字記号が含まれているという解釈だと思います。

noname#251034
質問者

お礼

アドバイスありがとうございました。