我有一个字符串:
将1放入锅中放2放入锅中放入3锅中...
直到
把n放进锅里
如何使用C#regex获取所有put语句,如:
“将1放入锅中”
“把2放进锅里”
“把3放在锅里”
...
“把n放进锅里”
用于n
语句?
由于
答案 0 :(得分: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);
答案 1 :(得分: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