C# 正则表达式来查找紧跟在特定单词之后的单词
我想使用正则表达式在字符串中的特定单词之后立即查找该单词。例如,如果单词是“my” “这是我的祈祷”-祈祷 “这是我的书。”-书C# 正则表达式来查找紧跟在特定单词之后的单词,c#,.net,regex,C#,.net,Regex,我想使用正则表达式在字符串中的特定单词之后立即查找该单词。例如,如果单词是“my” “这是我的祈祷”-祈祷 “这是我的书。”-书 是否可以使用正则表达式?对于my,请使用以下正则表达式: my (\w+) 你可以用 my\s+\b(\w+)\b 这将捕获第一个子组中my之后的单词。正则表达式将是 (?<=\bmy\s+)\p{L}+ (?如果my取自用户输入 static string GetWordAfter(string word, string phrase) { va
是否可以使用正则表达式?对于
my
,请使用以下正则表达式:
my (\w+)
你可以用
my\s+\b(\w+)\b
这将捕获第一个子组中my之后的单词。正则表达式将是
(?<=\bmy\s+)\p{L}+
(?如果my
取自用户输入
static string GetWordAfter(string word, string phrase)
{
var pattern = @"\b" + Regex.Escape(word) + @"\s+(\w+)";
return Regex.Match(phrase, pattern, RegexOptions.IgnoreCase).Groups[1].Value;
}
...
string wordAfterMy = GetWordAfter("my", "this is my book()"); // gives book
如果没有匹配项,则返回空字符串。“这是我的祈祷”
第2组结果是,您的单词“祈祷”将使用前瞻正则表达式:
(?<=my )\b\w+\b
(?+1;添加了一个单词边界,因此您不匹配陆军剩余
:)您使用了许多不必要的组,好吧,但是为什么要使用\D
,它不是一个数字?数字与匹配的单词有什么关系?
(?<=my )\b\w+\b