-2

私は文字列を持っています:

new y",[["new york",0,[]],["new york times",0,[]

私はこれらの文字列を間に入れたい["です",

new york
new york times

私はこの関数を試しました:

public MatchCollection s;
...
s =  Regex.Matches(s44, "[\".*?\",");

しかし、私はこのエラーを受け取りました:ArgumentException was unhandled: prasing "[".*?"," - Unterminated [] set

この問題を解決するのを手伝ってもらえますか?どうもありがとうございます!

編集:私が持っていたくない文字列["",

4

3 に答える 3

6

ブラケットをエスケープする必要があります。さらに、括弧を使用してグループを紹介する必要があります。必要なテキストは、そのグループに含まれています。

var matches = Regex.Matches(s44, "\\[\"(.*?)\",");
foreach(Match match in matches)
{
    var result = match.Groups[1].Value;
}
于 2012-09-10T08:02:50.753 に答える
2

私は昨日すでにこの質問に答えました、使用Regex.Matches(@"(?<=\["")[^""]+")

@プレフィックスを使用して、文字列リテラルを作成します。つまり、バックラッシュは他の文字として処理され、エスケープする必要はありません。ただし、二重引用符を2倍にする必要があります。

後読み部分についてはすでに説明しましたので、次回は同じ質問を再投稿しないでください。

于 2012-09-10T08:09:48.893 に答える
1

これはあなたが望むものです:

Regex.Matches(s44, "(?<=\\[\").*?(?=\",)");     

出力:new york, new york times

正規表現のデモ

于 2012-09-10T08:05:44.520 に答える