1

次の内容を含むテキストを照合したい:
MyValue="{NON_SPACEs}{SPACE_ONE_OE_MORE}{NON_SPACEs}"

パターン:

MyValue = "(\ S *)(\ s +)(\ S *)"

テキストの例:

sometext MyValue="val1 val2" sometext="xyz"

それも一致するという私のパターンの問題:

sometext MyValue="val1val2" sometext="xyz" (val1とval2の間にスペースはありません)

私はこれをテストに使用します:http://regexpal.com/

4

2 に答える 2

1

非スペース文字も非引用符になるように制限します。

MyValue="([^\s"]*)(\s+)([^\s"]*)"

この正規表現は、引用符で囲まれた複数の値にまたがろうとはしません。


グループをキャプチャする必要が ない限り、特にスペースの周囲で、これらのブラケットの一部またはすべてを削除することを検討してください。

于 2013-01-01T13:11:12.613 に答える
-1

これはあなたが探しているものです:

using System;
using System.Text.RegularExpressions;

namespace ConsoleApplication1
{
  class Program
  {
    static void Main(string[] args)
    {
      string txt="abc xyz";

      string re1=".*?"; // Non-greedy match on filler
      string re2="(\\s+)";  // White Space 1

      Regex r = new Regex(re1+re2,RegexOptions.IgnoreCase|RegexOptions.Singleline);
      Match m = r.Match(txt);
      if (m.Success)
      {
            String ws1=m.Groups[1].ToString();
            Console.Write("("+ws1.ToString()+")"+"\n");
      }
      Console.ReadKey();
    }
  }
}

それが役に立てば幸い :)

于 2013-01-01T13:17:13.847 に答える