Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
140 views
in Technique[技术] by (71.8m points)

c# - Regex.Match whole words

In C#, I want to use a regular expression to match any of these words:

string keywords = "(shoes|shirt|pants)";

I want to find the whole words in the content string. I thought this regex would do that:

if (Regex.Match(content, keywords + "\s+", 
  RegexOptions.Singleline | RegexOptions.IgnoreCase).Success)
{
    //matched
}

but it returns true for words like participants, even though I only want the whole word pants.

How do I match only those literal words?

Question&Answers:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

You should add the word delimiter to your regex:

(shoes|shirt|pants)

In code:

Regex.Match(content, @"(shoes|shirt|pants)");

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...