我想使用正则表达式在字符串中的特定单词之后立即找到该单词。例如,如果这个词是“我的”,
“这是我的祈祷”——祈祷
“这是我的书()”-书
是否可以使用正则表达式?
正则表达式将是
(?<=\bmy\s+)\p{L}+
\p{L}+
是一个字母序列。这\p{L}
是一个具有“字母”属性的 Unicode 代码点,因此它匹配任何语言的字母。
(?<=\bmy\s+)
是一个后向断言,确保“我的”这个词在前面
您可以使用
my\s+\b(\w+)\b
这在第一个子组中捕获了 my 之后的单词。
使用前瞻 REGEX:
(?<=my )\b\w+\b
对于my
,请使用以下正则表达式:
my (\w+)
如果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
如果没有匹配,这将返回一个空字符串。
“这是我的祈祷”
.* (my )(\D*)( ).*
group2 结果将你的话“祈祷”