文字列があるとします:特定のパターンまでの文字列の一致
"hello world; some random text; foo;"
どのようにして ';'私がすべき最初の試合をしたい他の言葉で
:私が試してみました"hello world"
第二試合は" some random text"
ことにするなど
もの:
string s = "hello world; some random text; foo;";
Regex r = new Regex(".+?;");
var match = r.Match(s);
while(match.Success)
{
Console.WriteLine(match.Value.ToString());
// first match is "hello world"!! but this turns out to be an infinite loop
match.NextMatch();
}
I私はRegex.Split()メソッドを使うことができると知っていますが、私はこのテクニックを使いたいと思います...私は間違って何をしていますか?なぜmatch.NextMatch();
メソッドは次の一致を返しませんか?
*「私は 'Regex.Split()'メソッドを使用することができます知っているが、私はinteadこのテクニックを使いたい」* - なぜそう...、それがあなたが必要とするものを、おそらくホイールを再発明するよりも効率的に行うならば? – Yuck
「私は間違っていますか?」あなたは間違ったテクニックを使用しています。 'Regex.Split'を使います。あるいは、この単純な例では 'string.Split'を使うだけです。 – vcsjones
私は複数の一致を見つけるために、より長い正規表現を作成しているためです。私はこの問題のために私の正規表現の真ん中に立ち往生しています... –