47

二重引用符で囲まれた単語のみを抽出したい。したがって、コンテンツが次の場合:

「あなた」は、あなたの「質問」に対する回答を電子メールで受け取りたいですか?

答えは

  1. あなた
  2. 質問
4

8 に答える 8

69

これを試してくださいregex

\"[^\"]*\"

また

\".*?\"

説明 :

[^ character_group ]

否定: character_group にない任意の 1 文字に一致します。

*?

前の要素に 0 回以上一致しますが、できるだけ少ない回数一致します。

およびサンプルコード:

foreach(Match match in Regex.Matches(inputString, "\"([^\"]*)\""))
    Console.WriteLine(match.ToString());

//or in LINQ
var result = from Match match in Regex.Matches(line, "\"([^\"]*)\"") 
             select match.ToString();
于 2012-10-23T05:28:40.400 に答える
21

@Ria の回答に基づく:

static void Main(string[] args)
{
    string str = "Would \"you\" like to have responses to your \"questions\" sent to you via email?";
    var reg = new Regex("\".*?\"");
    var matches = reg.Matches(str);
    foreach (var item in matches)
    {
        Console.WriteLine(item.ToString());
    }
}

出力は次のとおりです。

"you"
"questions"

不要な場合は、string.TrimStart() と string.TrimEnd() を使用して二重引用符を削除できます。

于 2012-10-23T05:40:58.713 に答える
15

私は正規表現ソリューションが好きです。あなたもこのようなことを考えることができます

string str = "Would \"you\" like to have responses to your \"questions\" sent to you via email?";
var stringArray = str.Split('"');

次にodd、配列から要素を取得します。linqを使用する場合は、次のように実行できます。

var stringArray = str.Split('"').Where((item, index) => index % 2 != 0);
于 2012-10-23T05:47:46.397 に答える
5

これも @Ria から正規表現を盗みますが、それらを配列に取得してから引用符を削除することができます。

strText = "Would \"you\" like to have responses to your \"questions\" sent to you via email?";
MatchCollection mc = Regex.Matches(strText, "\"([^\"]*)\"");
for (int z=0; z < mc.Count; z++)
{
    Response.Write(mc[z].ToString().Replace("\"", ""));
}
于 2013-11-27T03:37:10.727 に答える
3

Regex と Trim を組み合わせます。

const string searchString = "This is a \"search text\" and \"another text\" and not \"this text";
var collection = Regex.Matches(searchString, "\\\"(.*?)\\\"");
foreach (var item in collection)
{
    Console.WriteLine(item.ToString().Trim('"'));
}

結果:

search text
another text
于 2018-12-04T03:33:07.453 に答える
1

これを試して(\"\w+\")+

ダウンロードすることをお勧めしますExpresso

http://www.ultrapico.com/Expresso.htm

于 2012-10-23T05:27:16.053 に答える