【发布时间】:2010-11-13 16:58:41
【问题描述】:
正如标题所说,我需要在一个句子中找到两个特定的单词。但它们可以是任何顺序和任何大小写。我该如何使用正则表达式来做到这一点?
例如,我需要从下面的句子中提取单词test和long,无论单词test先出现还是long出现。
This is a very long sentence used as a test
更新: 我在第一部分没有提到的是它也需要不区分大小写。
【问题讨论】:
-
你关心单词的多次出现吗?您知道要提取哪些单词,还是要匹配符合特定模式的单词?你想知道他们在什么位置吗?
-
我知道确切的词,不要开车关于倍数,不需要位置。我确实需要不区分大小写
-
您使用的是哪种正则表达式? JavaScript、.NET、PHP……?性能有多重要?您是在处理非常大的字符串,还是进行大量匹配?已经发布了几个可行的答案,但没有一个特别有效。
-
我认为最重要的事情(我今天发现)是它正在 .Net 中进行检查,所以我不确定下面的所有答案是否都适用,我已经尝试了所有但很遗憾.net 不接受任何不区分大小写的内容
-
呃,是否区分大小写不应该依赖于正则表达式。最好将软件编程为不区分大小写。但是,要使用正则表达式以任何顺序识别多个单词,我建议在正则表达式中使用 quantifier:
(\b(james|jack)\b.*){2,}。与 lookaround 或 mode 修饰符 不同,这适用于大多数正则表达式。
标签: regex