是否有一个正则表达式则表达式匹配每个不在报价

问题描述 投票:2回答:4

我的工作,着眼于除报价信息一切正则表达式。一个例子是:

Lorem ipsum "dolor" sit amet, "consectetur" adipiscing elit.

会改变

Lorem ipsum sit amet, adipiscing elit

我已经尝试过

.*(?=".*").*

`[^"].*[^"]

无论工作,所以我会很感激的帮助。

javascript regex matching
4个回答
0
投票

继承人的方式...

var str = `Lorem ipsum "dolor" sit amet, "consectetur" adipiscing elit.`

console.log(str.replace(/\"[a-z]{1,}\"/g, ''))

0
投票

我会做一些在这一行了。它处理在句子开头或以引号结束的情况下。

var str = '"Lorem" ipsum "dolor" sit amet, "consectetur", adipiscing "elit."';
var regExp = /(?:^|\W)(\".+?\")(?:\W|$)/g;
var res = str.replace(regExp, " ").trim();
console.log(res);

正则表达式解释说:

(?:^|\W) - 非捕获组字符串的开始或只是一个空间的(技术上是一个“非字字符” - 可以是一个标点符号,支架等)

(\".+?\") - "之间的任何东西(包括引号本身)

(?:\W|$) - 相同的第一个,但检查一个字符串的末尾,而不是

g标志 - 检查是否有匹配模式的所有出现


0
投票

试试这个,不贪婪(".*?")比赛两份报价单,最少它们之间可能的。

var a ='Lorem ipsum "dolor" sit amet, "consectetur" adipiscing elit.';
console.log(a.replace(/".*?"/g,''));

0
投票

我希望能帮助你:

/[,\w]+(?![^" ]*")/g

var str = 'Lorem ipsum "dolor" sit amet, "consectetur" adipiscing elit.' ;
var res = '' ;
var patt = /[,\w]+(?![^" ]*")/g ;

while ( (arr = patt.exec(str)) != null) { res += arr[0] + ' ' ; }

console.log( res ) ;
© www.soinside.com 2019 - 2024. All rights reserved.