2011-05-12 130 views
1

我在C#中有一个系统需要一组关键字。如果存在关键字,则必须检查两个字段。所需关键字的RegExp?

最初我写了一个foreach循环来遍历每个关键字,然后遍历结果并检查。然而,这样做效率有点低,因为在检查时,我想看看是否有任何关键字存在于给定的字符串中,而不是一个接一个地存在。

谢谢。

+0

您是否有示例代码? – YetAnotherUser 2011-05-12 21:06:18

回答

1

((关键字1)|(关键字2)|(KEYWORD3))

林不知道到底如何C#确实正则表达式,但这应该匹配并返回匹配。

您可以测试正则表达式here

+0

我相信OP的问题比循环更多的是正则表达式。 – YetAnotherUser 2011-05-12 21:19:54

+1

测试正则表达式的好链接,加书签。谢谢。 – YetAnotherUser 2011-05-12 21:23:24

1

如果你是C#3.5+试试这个

 Regex r1 = new Regex("MyKeywordRegex"); 
     IEnumerable<MyResultClass> results = GetMyResults(); 
     var myFilteredResults = results.Any(a => (r1.IsMatch(a.Field))); 
+0

你不需要两个正则表达式。一个正则表达式可以检查两个/所有单词的存在。 – 2011-05-12 21:16:36

+0

要么我生气了,要么你编辑了你的问题,因为我正在发表评论:) – 2011-05-12 21:18:48

+0

@Russell - 我正在更新代码:)。好,但是,谢谢。 – YetAnotherUser 2011-05-12 21:21:04

2

这是否question比赛你正在尝试做什么?

答案告诉您如何在一个去匹配多个可能的话用正则表达式