c# - 正则表达式 : which pattern would return true if both exact words were found?

标签 c# regex

如果我的正则表达式模式 @"\b(word1|word2)\b" 在仅找到 1 个准确单词时返回 true,如果找到两个准确单词,哪个模式将返回 true?

我找到的唯一例子就像我做的那样,只要找到 1 个单词就返回 true,但我希望它在找到所有单词时返回 true。所以同一个词的倍数不算数。我需要知道所有单词是否至少出现 1 次。

编辑:

例子: “敏捷的棕色狐狸跳过懒惰的狗”

模式:@"\b(fox|dog)\b" <---- 返回真值

pattern: @"\b(fox|elephant)\b" <---- 返回 true,我希望它返回 false。

补充:我必须灵活一些,因为要搜索的字数取决于我的用户。

最佳答案

你可以使用前瞻来实现这一点

(?=.*\bWord1\b)(?=.*\bWord2\b).*

查看here on Regexr

(?=.*\bWord1\b) 是一个积极的前瞻。它检查内部模式是否出现在字符串中。它不匹配任何东西!

要匹配字符串,末尾有 .*,但这只会匹配,如果两个前瞻都是真的,即你的两个词都在字符串中找到。

关于c# - 正则表达式 : which pattern would return true if both exact words were found?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7000353/

相关文章:

c# - 使用 ListView/DataPager 返回页面时记住分页

javascript - 正则表达式未解析

不以点开头和/或结尾的匹配字符串的正则表达式

c# - '' 没有重载匹配委托(delegate) 'System.EventHandler'

c# - 静态类与具有构造函数性能的类

jQuery 美国货币验证正则表达式也允许整数

正则表达式只允许 1 到 12 之间的数字

regex - 匹配字符串的正则表达式,不以特定字符串结尾

c# - 是否可以只从另一个函数中调用一个函数?

C# WPF Datagrid 不会在数据更新时动态排序