- ベストアンサー
正規表現で
正規表現で 8文字以上、15文字以内で1文字以上の英語(大文字小文字どちらか一方で可)と数字が含まれている表現を考えているのですが、思いつきません。 [0-9a-zA-Z]{8,15} だと全て数字・英語でも通ってしまうので、困っています。 どなたか詳しい方、ご教授ください。
- jan99
- お礼率100% (2/2)
- Visual Basic
- 回答数2
- ありがとう数2
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 Visual Basic と解釈してよいのでしょうか? 何の正規表現か分らないけれども、あえて、VBScript の正規表現のみで表現しようとすれば以下のようになりますね。 Public Function RegExpTest(ByVal arg1 As String) As Boolean With CreateObject("VBScript.RegExp") .Global = False .IgnoreCase = False .Pattern = "^[0-9a-zA-Z]{8,15}$" If .Test(arg1) Then .Pattern = "[a-zA-Z]+" If .Test(arg1) Then .Pattern = "\d+" If .Test(arg1) Then RegExpTest = True End If End If End If End With End Function
その他の回答 (1)
関連するQ&A
- 正規表現
strutsのバリデータでmaskのみで 以下の条件を正規表現を使ってあらわしたいのですが 使用可能文字 半角英数字 @ - _ . 条件 @ _ - . 同一文字の連続使用は不可。 先頭と最期は半角英数字のみ。 全部の文字数は3文字以上30文字以内。 aaa@aaa OK aaa@_-a OK aaa@@_a NG a@@@a NG @マークの連続使用不可は↓でできたのですが、 ^[a-zA-Z0-9]([a-zA-Z0-9]+@?){1,30}[a-zA-Z0-9]$ _ . - の条件を加えるとうまくいきいません。。 よい方法がございましたらご教授ください!!
- ベストアンサー
- その他(プログラミング・開発)
- メールアドレスの正規表現
メールアドレスの正規表現 正規表現の勉強をしています。下記のURLのメールアドレスの正規表現の一部が理解できません。 http://hodade.adam.ne.jp/seiki/page.php?s_mail ^[a-zA-Z0-9!$&*.=^`|~#%'+\/?_{}-]+@([a-zA-Z0-9_-]+\.)+[a-zA-Z]{2,4}$ この中の「[a-zA-Z]{2,4}$」の部分がわかりません。 行末が英文字2以上4以下というのは何を表しているのでしょうか? なぜ2以上4以下になるかが理解できません・・・ 宜しくお願いします!!
- ベストアンサー
- その他([技術者向] コンピューター)
- 正規表現の添削をお願いします
アルファベットと数字とスペースと「-」のみで構成される任意の長さの文字列をjavaの正規表現であらわしたいです。 [\s0-9a-zA-Z-]+ でいいのでしょうか? 最後の「-」がまずいような気がするのですが、[-]はどこに持っていくのが正しいのでしょうか。 他にも間違っているところがありましたら、教えて下さい。
- ベストアンサー
- その他([技術者向] コンピューター)
- 正規表現 英数字を1つ以上含む文字列
ASP.NET(VB)での入力チェックのために、 半角英数字「0~9」「a~z」「A~Z」と、ハイフン「-」からなる文字列 (ただし、半角英数字「0~9」「a~z」「A~Z」はそれぞれ少なくとも1個ずつ含む) の正規表現での表し方が知りたいです。 How To: ASP.NET への入力を制約するために正規表現を使用する方法 http://www.microsoft.com/japan/msdn/enterprise/pag/securityguidance/paght000001.aspx (?!^[0-9]*$)(?!^[a-zA-Z]*$)^([a-zA-Z0-9]{8,10})$ 8から10文字で、最低1文字の数字と1文字の英字を使用し、特殊文字を使用してはいけません。 上記を参考に、 (?!^[0-9]*$)(?!^[a-z]*$)(?!^[A-Z]*$)^([a-zA-Z0-9])$ こんな感じかなぁと試してみたのですが、ダメでした。 そもそも「!」の意味が分かりません。否定でしょうか??
- ベストアンサー
- Visual Basic
- 秀丸の正規表現
秀丸の正規表現 http://pc.dearie.jp/hidemaru/replace/14.html 上記URLでメールの正規表現について解説があります。 [A-Za-z0-9\-\.\_]+@[A-Za-z0-9\-\_]+\.[A-Za-z0-9\-\.\_]+ この正規表現でメールの検索をおこなっています。この正規表現は理解出来ます。 .*([a-z0-9\-\.\_]+@[a-z0-9\-\_]+\.[a-z0-9\-\.\_]+)([^a-z0-9@\.\-\_]+).* キャプチャを使って正規表現でメールアドレスをマッチしているのは理解できます。 なぜ置換で、「\1,」とやっても、メールアドレスのみを取得できないのでしょうか? 実際に秀丸エディタを使ってやってみましたが、メールアドレスのみ取得することができませんでした。 検索ではメールアドレスにマッチするのに、なんでキャプチャが正しく動かないのかがわかりません・・・
- ベストアンサー
- その他([技術者向] コンピューター)
- 正規表現で@を使う場合は\@とするべきか@とするべきか悩んでいます。
正規表現で@を使う場合は\@とするべきか@とするべきか悩んでいます。 両方とも構文エラーが起きないのでその時点で?ですが .は\.としないと正規表現ではドット文字を認識しないのはわかりますが、正規表現の@はどうすればよいのでしょうか? Perl自体@も配列なので\@つけた方が・・・ よろしくお願いいたします。 $x = "test@example.com"; if ( $x =~ /[^a-zA-Z0-9\.\-\_@]/) if ( $x =~ /[^a-zA-Z0-9\.\-\_\@]/)
- ベストアンサー
- Perl
- 正規表現
正規表現の使い方を教えて下さい。 下記のソースでは、oPerl5Util.matchメソッドから戻って来ません。 正規表現文字列が悪いのか それともメソッドの呼び方の手順などが悪いのか 指摘して下さい。 import org.apache.oro.text.perl.Perl5Util; public class clsTestMain { public clsTestMain() {} public static void main(String[] args) { clsTestMain clsTestMain1 = new clsTestMain(); Perl5Util oPerl5Util = new Perl5Util(); String sPattern = "/[0-9a-zA-Z_!#$%&'*+-/=?^`{|}~]+(.[0-9a-zA-Z_!#$%&'*+-/=?^`{|}~]+)*@[0-9a-zA-Z-]+(.[0-9a-zA-Z-]+)*/"; String sTaget = "1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890@.jp"; try { boolean bResult = oPerl5Util.match(sPattern,sTaget); // ここで処理が止まる System.out.println(bResult); // ここにも来ない } catch (Exception oException) { oException.printStackTrace(); // ここにも来ない } } }
- ベストアンサー
- Java
- 英数字と記号の正規表現
英数字と記号の文字であればtrueを返すような判定を正規表現で行いたいです。 英数字の判定([0-9a-zA-Z])、記号([\\p{Punct}]+)の判定は個別にテストして動作したのですが、二つを組み合わせて書くようにするにはどのようにすればよいのでしょうか? 当然ですが、以下のように書くと文字列の全てがそれぞれ記号なのか、英数字なのかを判定してしまうためfalseを返してしまいます。 String str = "~!@#$%^&*()_+{}|:"<>?`-=[]\;',./1234567890abcdefgxyz"; System.out.println(str.matches("[\\p{Punct}]+") || str.matches("[0-9a-zA-Z]+")); 以上、宜しくお願いします。
- ベストアンサー
- Java
お礼
言語ですが、.net で RegexクラスのIsMatchメソッドで比較を行おうと思っています。 VBScript の表現でも感じはわかりました。 ありがとうございます。