📌  相关文章
📜  正则表达式查找包含两个字符串的行 - Javascript (1)

📅  最后修改于: 2023-12-03 15:10:58.278000             🧑  作者: Mango

正则表达式查找包含两个字符串的行 - Javascript

在Javascript中,我们可以利用正则表达式来查找包含两个指定字符串的行。下面是一个基本的匹配模式示例,可以根据需要进行修改:

const regex = /^.*(string1).*(string2).*$/

此正则表达式将匹配包含 "string1" 和 "string2" 的行。在上面的表达式中, ^.* 用于匹配行的开头, .*$ 用于匹配行的结尾,而 (string1)(string2) 则用于匹配指定的字符串。

下面是一个使用JavaScript中的 正则表达式 和 模板字符串 的例子来找到包含两个字符串的行:

const text = `This is the first string. 
This line doesn't contain the required strings.
This is the second string.`;

const regex = /^.*(first).*(string).*$/

const matches = text.split("\n").filter(line => regex.test(line));

console.log(matches);

输出:

['This is the first string. ', 'This is the second string.']

上面的示例中,我们定义了一个多行字符串 text,并使用 split() 方法将其分成行。然后我们使用 filter() 方法和正则表达式 regex 来筛选所有匹配的行,最后将这些行存储在 matches 变量中。

我们也可以使用类似于下面的模板字符串来替换 filter()

const matches = text.match(/^.*(first).*(string).*/gm);

这个正则表达式与上面的相同,只是 gm 参数用于全局匹配多行文本。结果是存储在 matches 数组中的所有匹配行。

要点总结:

  • 利用正则表达式匹配需要的行
  • 使用split方法将文本分成行
  • 使用filter或者match方法对每行进行匹配
  • 全局匹配需要使用gm参数
  • 返回值需要存储在变量中,以便后续的处理。

我们可以上述的方法来查找包含两个指定字符串的行。 若有其他需要或疑问,可参考Javascript正则表达式的相关文档或咨询其他的程序员。