-4

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

1を鍋に投入 2を鍋に投入 3を鍋に投入…

まで

nを鍋に入れる

C# 正規表現を使用して、次のようなすべての put ステートメントを取得するにはどうすればよいですか?

「鍋に 1 を入れる」
「鍋に 2 を入れる」
「鍋に 3 を入れる」

「鍋に n を入れる」

n声明のために?

ありがとう

4

2 に答える 2

3

あなたの質問はまったく努力を示していないので、おそらくこれに答えるべきではありませんが、可能な正規表現は次のようになると思います:

string regex = @"put (?<number>\d+) in pot";

次に、次を使用して一致させることができます。

var matches = Regex.Matches("Put 1 in pot put 2 in pot", @"put (?<number>\d+) in pot", RegexOptions.IgnoreCase);
foreach (Match match in matches)
{
    Console.WriteLine(match.Value);
}

実際の数を見つけるには、次を使用できます

int matchNumber = Convert.ToInt32(match.Groups["number"].Value);
于 2012-12-10T15:32:11.070 に答える
1

これもできます

 var reg=@"put.*?(?=put|$)";
 List<string> puts=Regex.Matches(inp,reg,RegexOptions.Singleline)
                        .Cast<Match>()
                        .Select(x=>x.Value)
                        .ToList();     

put.*?(?=put|$)
------ -------
|         |
|         |->checks if `.*?`(0 to many characters) is followed by `put` or `end` of the file
|->matches put followed by 0 to many characters
于 2012-12-10T15:40:32.017 に答える