Javascript 正则表达式与变量匹配

Javascript 正则表达式与变量匹配,javascript,regex,Javascript,Regex,我使用的是JavaScript,我想用如下自定义模板语言匹配所有内容: Begin10 Match THIS keyword and ANOTHER End10 因此,我想使用10作为变量来查找Begin10,以查找End10,并在它们之间进行匹配。 我已经看过了捕获组。我想这是一种方式,但我不知道如何编写表达式 我的代码需要将此和另一个作为语法突出显示的目标。您可以将正则表达式与捕获的组一起使用 var str=`Begin10 匹配此关键字和其他关键字1 (完) 开始20 将此关键

我使用的是
JavaScript
,我想用如下自定义模板语言匹配所有内容:

Begin10
    Match THIS keyword and ANOTHER
End10
因此,我想使用10作为变量来查找
Begin10
,以查找
End10
,并在它们之间进行匹配。 我已经看过了捕获组。我想这是一种方式,但我不知道如何编写表达式


我的代码需要将此
和另一个作为语法突出显示的目标。

您可以将正则表达式与捕获的组一起使用
var str=`Begin10
匹配此关键字和其他关键字1
(完)
开始20
将此关键字与其他关键字匹配2
End20`;
console.log(
str.match(/\bBegin(\d+[\s\s]*?\bEnd\1\b/g)

);您可以对捕获的组使用正则表达式
var str=`Begin10
匹配此关键字和其他关键字1
(完)
开始20
将此关键字与其他关键字匹配2
End20`;
console.log(
str.match(/\bBegin(\d+[\s\s]*?\bEnd\1\b/g)
);这将起作用

\bBegin(\d+)\b([\S\s]*)\bEnd\1\b

这将起作用

\bBegin(\d+)\b([\S\s]*)\bEnd\1\b

说明:
  • \n
    将匹配一个换行符,我确信您不想得到除换行符之外的任何内容
  • \1
    这是第一个组的变量,用于确保其值相同
  • \s*
    忽略一些不必要的空白
  • 说明:
  • \n
    将匹配一个换行符,我确信您不想得到除换行符之外的任何内容
  • \1
    这是第一个组的变量,用于确保其值相同
  • \s*
    忽略一些不必要的空白


  • 事实上,如果你写了一个好的正则表达式,它不必是非贪婪的,但在这个问题上它是必须的。我认为在这种情况下没有其他选择。如果你不知道更好的选择,并不意味着没有。学习展开循环技术以编写更好的正则表达式。我知道。当然谢谢你让我知道。很高兴能在StackOverflow中获得高级知识,我希望以
    这个
    另一个
    为目标,这样我就可以突出显示它们作为关键字。这里的答案已经让我走了一半。事实上,如果你写了一个好的正则表达式,它不一定是非贪婪的。但在这个问题上它是必须的。我认为在这种情况下没有其他选择。如果你不知道更好的选择,并不意味着没有。学习展开循环技术以编写更好的正则表达式。我知道。当然谢谢你让我知道。很高兴能在StackOverflow中获得高级知识,我希望以
    这个
    另一个
    为目标,这样我就可以突出显示它们作为关键字。这里的答案已经让我走了一半,我正在尝试替换表达式中的[\s\s],这样我就可以针对
    这个
    另一个
    。我不希望匹配整个字符串。你能举个例子吗?我假设这样一个小的更改会起作用,
    /\bBegin(\d+)\s+(这是另一个)\s+\bEnd\1\b/g
    @Ade:只有这两个字符串在它们之间??是的,我首先要找到
    开始(\d+)
    ,并将其与(
    结束\1
    匹配)但是,我需要在这些字符串之间搜索,并仅查找
    另一个
    。我正在尝试替换表达式中的[\s\s],以便我可以针对
    另一个
    。我不希望匹配整个字符串。你能举个例子吗?我假设这样一个小的更改会起作用,
    /\bBegin(\d+)\s+(这是另一个)\s+\bEnd\1\b/g
    @Ade:只有这两个字符串在它们之间??是的,我首先要找到
    开始(\d+)
    ,并将其与(
    结束\1
    匹配)但是我需要在这些字符串之间搜索,只找到
    这个
    另一个