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
匹配)但是我需要在这些字符串之间搜索,只找到这个
和另一个
。