首页 > 解决方案 > 如何使用正则表达式匹配由任意数量的字符和空格分隔的两个单词?

问题描述

我正在寻找一个正则表达式搜索,它将为我提供两个单词的匹配,其中包含任意数量的空格(制表符、空格、换行符等)或介于两者之间的字符。例如:

目标:类,构造函数

应该匹配:

class myComponent {
  constructor() {
  }
}

不应该匹配:

class myComponent {
  render() {
  }
}

还应该匹配:

class myComponent {
  // imagine a bunch of code here that comes before the constructor
  // with many different lines and many random characters
  constructor() {
  }
}

标签: regex

解决方案


是的,你可以使用这个匹配你想要的正则表达式。

\bclass\b(?:(?!\bclass\b)[\w\W])*\bconstructor\b

此正则表达式的说明:

  • \bclass\b-class按字面意思匹配整个单词,而不是在较大的文本中部分匹配
  • (?:(?!\bclass\b)[\w\W])*- 这以贪婪的方式匹配任何输入零次或多次,除了class整个单词,也就是缓和的贪婪令牌
  • \bconstructor\b- 最后这匹配文字constructor作为整个单词

演示


推荐阅读