【问题标题】:RegExp for required keywords?所需关键字的正则表达式?
【发布时间】:2011-05-13 05:17:42
【问题描述】:

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

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

谢谢。

【问题讨论】:

  • 你有示例代码吗?

标签: c# asp.net regex find


【解决方案1】:

question 是否符合您的要求?

答案向您展示了如何使用正则表达式一次性匹配多个可能的单词

【讨论】:

    【解决方案2】:

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

    我不确定 c# 是如何执行正则表达式的,但这应该匹配并返回匹配项。

    您可以测试正则表达式here

    【讨论】:

    • 我相信 OP 的问题更多是关于循环而不是正则表达式。
    【解决方案3】:

    如果你在 c# 3.5+ 上试试这个

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

    【讨论】:

    • 你不需要两个正则表达式。一个正则表达式可以检查两个/所有单词是否存在。
    • 要么我快疯了,要么你在我发表评论时编辑了你的问题:)
    • @Russell - 我正在更新代码:)。不过很好,谢谢。
    • 我会给你和 kniteli 一个赞成票,但显然我今天没有票了。一个正则表达式是正确的做法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-29
    • 2018-08-10
    • 1970-01-01
    • 1970-01-01
    • 2010-09-12
    • 2011-11-20
    • 1970-01-01
    相关资源
    最近更新 更多