2012-03-03 1 views
0

Friends、 のような文字列と一致させたいint lnum [];このようなパターンに一致させようとしています。C#regex match、match.Successは、ルールに従ってもfalseを返します。

[A-Za-z_0-9] [A-Za-z_0-9]\[\] 

しかし、動作していないようです。 私はhttp://www.mikesdotnetting.com/Article/46/CSharp-Regular-Expressions-Cheat-Sheet

string pJavaLine = "int lnum[]"; 
match = Regex.Match(pJavaLine, @"[A-Za-z_0-9] [A-Za-z_0-9]\[\] ", RegexOptions.IgnoreCase); 
      if (match.Success) { 
       // Finally, we get the Group value and display it. 
       string key = match.Groups[1].Value; 
       Console.WriteLine(key); 
      } 

でルールを見上げmatch.Successはfalseを返します。誰でも私にこれを得るための可能な方法を教えてもらえますか?

+0

こんにちは、私はそれらのほとんどを受け入れました。提案が役に立たなかった場合、Plsは何をすべきかを教えてくれます。 –

+0

それは素晴らしいです!心配しないでください。提案が役に立たなかったら、少なくともポスターにコメントを残してください。彼らはより良い提案を持っているかもしれませんし、少なくともそれは将来サイトを閲覧する人々に役立ちます。 –

答えて

4

各文字クラスは、[A-Za-z_0-9]のように1文字にのみ一致します。複数の文字と一致させる場合は、最後に何かを追加する必要があります。たとえば、[A-Za-z_0-9]+ - +は、これらの1つ以上を意味します。 *を0以上に使用することも、範囲を指定することもできます。{2,5}は2〜5文字です。

[A-Za-z_0-9]+ [A-Za-z_0-9]+\[\] 

あなたはおそらく、単に使用できるように\wは、(以下jessehouwingさんのコメント内のリンクを参照してください)[A-Za-z_0-9]に相当緩くです:

をあなたはその文字列に一致するように、このパターンを使用することができ、言っ

\w+ \w+\[\] 

チェックhere for more info on the standard Character Classes

+0

それは単に動作します:)ありがとうたくさんのジェイ!! –

+0

"fun(int lnum [])"を "\ w + \\(w + \ w + \ [\] + \\)"を使って解析しようとしたとき、trueを返していません。私に知らせてください?私はすべてのルールに従ったように見えます。 –

+0

@SaurabhGhorpade 2番目の 'w 'の前で、角括弧' ['と'] 'の前にバックスラッシュがありません。これらの権利を得るのに役立つ素晴らしい正規表現ツールがいくつかあります。正規表現のバディは1つです。 http://regexlib.com/RETester.aspxのようなオンラインの正規表現テスト担当者もいます – Jay

関連する問題