regex 如何从引号之间提取文本并排除引号

kwvwclae  于 2023-05-08  发布在  其他
关注(0)|答案(4)|浏览(195)

我需要regex的帮助。我需要创建一个规则,保留引号之间的所有内容并排除引号。例如:我想要这个...

STRING_ID#0="Stringtext";

。。。变成了。。

Stringtext

谢谢!

js5cn81o

js5cn81o1#

实现这一点的方法是使用捕获组。但是,不同的语言处理捕获组的方式略有不同。下面是一个JavaScript的例子:

var str = 'STRING_ID#0="Stringtext"';
var myRegexp = /"([^"]*)"/g;
var arr = [];

//Iterate through results of regex search
do {
    var match = myRegexp.exec(str);
    if (match != null)
    {
        //Each call to exec returns the next match as an array where index 1 
        //is the captured group if it exists and index 0 is the text matched
        arr.push(match[1] ? match[1] : match[0]);
    }
} while (match != null);

document.write(arr.toString());

输出为

Stringtext
z18hc3ub

z18hc3ub2#

试试这个

function extractAllText(str) {
       const re = /"(.*?)"/g;
        const result = [];
        let current;
        while ((current = re.exec(str))) {
            result.push(current.pop());
        }
        return result.length > 0 ? result : [str];
    }

const str =`STRING_ID#0="Stringtext"`
console.log('extractAllText',extractAllText(str));

document.body.innerHTML = 'extractAllText = '+extractAllText(str);
368yc8dk

368yc8dk3#

"([^"\\]*(?:\\.[^"\\]*)*)"

我推荐阅读有关REGEXes here的文章

sd2nnvve

sd2nnvve4#

"(.+)"$

Edit live on Debuggex
这是2011年被问到的……

相关问题