匹配两个字符串的Javascript正则表达式

标签 javascript regex

我不太了解正则表达式,我想创建一个匹配两个字符串的正则表达式。

我知道对于一个字符串,代码是 .match(/something/) 如果匹配两个字符串,它是 .match(/something|someotherthing/)

如何编写仅当在文本中找到两个字符串时才匹配的字符串,例如“google microsoft”

最佳答案

要使用单个正则表达式来完成此操作,您需要考虑它们可能以任一顺序出现的事实。 (.* 匹配两个子字符串之间的任何字符):

/google.*microsoft|microsoft.*google/

注意:如果你想做 2 个以上的子字符串,这会失控。 3 个字符串可以按 6 不同的顺序排列,5 个字符串可以按 120 的顺序排列,10 个子字符串可以按 3628800 不同的顺序排列!这就是为什么使用语言 (Javascript) 本身的特性,比如在 Explosion Pills 的回答中,比尝试使用正则表达式做太多事情要好得多。

关于匹配两个字符串的Javascript正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18496715/

相关文章:

c# - 正则表达式人名比较

Ruby str[regex, number] 语法

javascript - 如何防止变量在javascript中改变

sql - 正则表达式匹配字符串和插入符号 (^) 之间的所有内容,不包括插入符号 (^)

php - 正则表达式从字符串中删除所有单个字符

javascript - 跨域但控制两个域 : Set the height of an iframe per it's contents?

javascript - 如何在 JavaScript 正则表达式中用 (n-1) 次出现的相同字符替换 (n) 次出现的字符

javascript - Google oAuth - 在 JS 中验证用户,但在 C# 中使用

javascript - 如何匹配上升的数字序列?

javascript - 定义 Javascript 对象的 'implied' 方法