2

引用符を含まない文字列と一致させようとしていますが、エスケープされた引用符を含めることができます

文字列と言うときは、引用符とその中の文字列を意味します。

この正規表現を使用していますが、機能しません。

\"(?![^\\\\]\")\"

解決:

@"""[^""\\\r\n]*(?:\\.[^""\\\r\n]*)*"""

コード (c#)

MatchCollection matches = Regex.Matches(input,@"""[^""\\\r\n]*(?:\\.[^""\\\r\n]*)*""");
        foreach (Match match in matches)
        {
            result += match.Index + " " + match.Value + System.Environment.NewLine ;
        }
4

2 に答える 2

6

"[^"\\\r\n]*(?:\\.[^"\\\r\n]*)*"

http://www.regular-expressions.info/examplesprogrammer.html

特定の文字を適切にエスケープする必要があることに注意してください(使用する文字列リテラルによって異なります)。次のデモ:

using System;
using System.Text.RegularExpressions;

class Program
{
  static void Main()
  {
    string input = "foo \"some \\\" text\" bar";

    Match match = Regex.Match(input, @"""[^""\\\r\n]*(?:\\.[^""\\\r\n]*)*""");

    if (match.Success)
    {
      Console.WriteLine(input);
      Console.WriteLine(match.Groups[0].Value);
    }
  }
}

印刷されます:

foo "some \" text "bar
「いくつかの「テキスト」
于 2011-07-07T08:20:59.080 に答える
2

これを試して

[^"\\]*(?:\\.[^"\\]*)*
于 2011-07-07T08:30:47.523 に答える