我想使用Regex提取第一个字体名称而不用字体系列值的撇号。
我不知道如何使用正则表达式。请逐步指导我解决此问题。预先感谢!
输入:
1.“ Helvetica Neue,Helvetica,无衬线”
2。 “ Arial,Helvetica Neue,Helvetica,无衬线”
3。 “ Arial”
预期输出:
1. Helvetica Neue
2. Arial
3. Arial
答案 0 :(得分:0)
您可以轻松地用逗号split()
,
抓取字符串的第一部分,并用replace()
括住单引号来完成工作,但是如果需要正则表达式,则可以采用此解决方案。
const regex = /"'?(.*?)'?(?:,|")/ig;
const str = `"'Helvetica Neue', Helvetica, sans-serif"
"Arial, 'Helvetica Neue', Helvetica, sans-serif"
"Arial"`;
let m;
while ((m = regex.exec(str)) !== null) {
// This is necessary to avoid infinite loops with zero-width matches
if (m.index === regex.lastIndex) {
regex.lastIndex++;
}
// The result can be accessed through the `m`-variable.
m.forEach((match, groupIndex) => {
if (groupIndex == 1)
console.log(`${match}`);
});
}