正则表达式在特定单词后立即找到单词

时间:2013-01-18 09:18:28

标签: c# .net regex

我希望使用正则表达式在字符串中的特定单词后立即找到该单词。例如,如果单词是'my',

“这是我的祈祷” - 祈祷

“这是我的书()” - 书

是否可以使用正则表达式?

5 个答案:

答案 0 :(得分:7)

正则表达式将是

(?<=\bmy\s+)\p{L}+

\p{L}+是一系列字母。 \p{L}Unicode code point with the property&#34; Letter&#34;,因此它与任何语言的字母匹配。

(?<=\bmy\s+)是一个后瞻性的断言,它确保了这个词#34; my&#34;在之前

答案 1 :(得分:2)

您可以使用

my\s+\b(\w+)\b

这会抓住我在第一个小组后面的单词。

答案 2 :(得分:0)

对于my,请使用以下正则表达式:

my (\w+)

答案 3 :(得分:0)

如果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

如果没有匹配,这将返回一个空字符串。

答案 4 :(得分:0)

“这是我的祈祷”

.* (my )(\D*)( ).*
结果中的group2将是你的“祈祷”字样