私は文字列を持っています:
1を鍋に投入 2を鍋に投入 3を鍋に投入…
まで
nを鍋に入れる
C# 正規表現を使用して、次のようなすべての put ステートメントを取得するにはどうすればよいですか?
「鍋に 1 を入れる」
「鍋に 2 を入れる」
「鍋に 3 を入れる」
…
「鍋に n を入れる」
n
声明のために?
ありがとう
私は文字列を持っています:
1を鍋に投入 2を鍋に投入 3を鍋に投入…
まで
nを鍋に入れる
C# 正規表現を使用して、次のようなすべての put ステートメントを取得するにはどうすればよいですか?
「鍋に 1 を入れる」
「鍋に 2 を入れる」
「鍋に 3 を入れる」
…
「鍋に n を入れる」
n
声明のために?
ありがとう
あなたの質問はまったく努力を示していないので、おそらくこれに答えるべきではありませんが、可能な正規表現は次のようになると思います:
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);
これもできます
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