我想在匹配字符后只得到接下来的5个字

时间:2019-04-09 16:20:22

标签: c# regex

我在C#中使用Regex。我想在字符串匹配后再得到5个单词。

Regex regex = new Regex("Born(.*){0,5}");
string result = regex.Match(UrlString).Value;

首先,我需要找到“出生”一词。然后,在找到“出生”一词后,我需要获得下五个单词。

示例

输入:

  

示例-莫迪出生于瓦德纳加尔(Vadnagar)的古吉拉特(Gujarati)一家人,他帮助他的父亲小时候卖茶,后来又经营了自己的摊位。

结果:

  

到一个古吉拉特邦的家庭

但是我没有得到想要的结果。

2 个答案:

答案 0 :(得分:3)

Regex r = new Regex("Born (?<words>([^ ]+ ){5})");
string input = "asd Born asd asd asd asd asd asd asd asd asd asd Born qwe qwe qwe qwe qwe rtz rtz rtz";

foreach (Match m in r.Matches(input))
{
    Console.WriteLine(m.Groups["words"].Value);
}

说明:

(?<words>xxxxxx) // is a group which can be accessed from Matches
[^ ] // All characters except space " "
+ // one or more times
([^ ]+ ) // characters followed by a space => A word
{5} // five words

答案 1 :(得分:0)

string result = UrlString.Substring(UrlString.IndexOf("Born"), 300);

使用正则表达式:

string result = Regex.Match(UrlString,@"Born(.){300}").ToString())