我想使用正则表达式找到一组词后面的字符串。
例如,如果这些词是“these”和“the”,
这个人-thesePeople-> People
这个苹果-theApple -> Apple
这可行吗?
主要问题在于"the"是"these"的子字符串。我已经阅读了这个问题并做出了尝试:
@"(?<=the|these)\w+"
但是这个正则表达式对于第一个情况给出的是"sePeople",我无法继续下去。有人可以帮忙吗?
the(se){0,1}(\w+)
这个正则表达式总是匹配的。如果也出现了'se',则由第一个捕获组匹配。随后的所有内容都由第二个捕获组匹配。
使用这个表达式,还可以捕获不以'the'或者'these'开头的单词:
(?>the(?>se){0,1}){0,1}(\w+)
[A-Z]\w+
) 就可以工作了。string[] words = new string[]{"thesePeople", "theApple"};
foreach(string word in words)
Console.WriteLine(Regex.Match(word, @"[A-Z]\w+", RegexOptions.None).Groups[0].Value);
输出:
人们
苹果
[A-Z]\w+
。 - string.Empty(?:these|the)(?<word>\w+)
正则表达式匹配所有内容(请注意,这里 these 在正则表达式中排在第一位),并从匹配中提取word
组。 - Ulugbek Umirov