正则表达式替换不遵守 $1

Regex Replace doesn't obey $1

本文关键字:不遵守 替换 正则表达式      更新时间:2023-09-26
var input = document.getElementById('textinput').value;
var lines = input.split(''n');
var output = '';       
$.each(lines, function(key, line) {
    for(var iii=0; iii<=key; iii++) //for each line
    {
        var filenameRegex = /^'* '['[Media:(.+?)('|)/;
        var results = lines[iii].match(filenameRegex);
        var filename;
        console.log('lines[iii]= '+lines[iii]);
            if(results!==null && results.length!== 0)
            {
                  output += lines[iii].replace(filenameRegex,'$1'); 
            }
    }

我努力尝试,但输出总是output += lines[iii].replace(filenameRegex,'$1$2') 即使我只想要 1 美元

示例输入:* [[媒体:重要内容|不重要内容]]

预期输出:重要内容

实际输出:重要内容不重要内容]]

如果我理解正确,您正在寻找以下内容:

演示

法典:

var filenameRegex = /^'* '['[Media:(.+?)'|.*/;
var results = lines[iii].match(filenameRegex);
var filename;
console.log('lines[' + iii + ']= ' + lines[iii]);
console.log('key[' + iii + ']= ' + key);
if (results !== null && results.length !== 0) {
    output += lines[iii].replace(filenameRegex, '$1');
}