How do i replace all enters between two quotes in a text file. The first quote is always preceded by a tab or it is the first character in the row (csv file). I tried the following regex
/(\t"|^")([^"]*)(\n)([^"]*")/gm
but this regex only matches the first enter between two quotes, not all.
For example, the following text:
xx "xx
xx
xx"
xx
"xx"
xx
xx
"xxx xxx
xx"
should become
xx "xx xx xx"
xx
"xx"
xx
xx
"xxx xxx xx"
I read the following post ( javascript regex replace spaces between brackets ) which is very similar, but the regex suggested there is not useable in my situation.
With Javascript replace you can use a function as replacement .
var str = 'foo \\n"a\\n" bar\\n'; str = str.replace(/"[^"]+"/g, function(m) { return m.replace(/\\n/g, ' '); }); console.log(str);
The regex "[^"]+"
will match quoted stuff with one or more non -quotes in between.
Add conditions such as tab or start to the pattern as needed: (?:\\t|^)"[^"]+"
\n(?=[^"]*"(?:[^"]*"[^"]*")*[^"]*$)
You can use this and replace by empty string
.
var re = /\n(?=[^"]*"(?:[^"]*"[^"]*")*[^"]*$)/g;
var str = 'xx "xx \nxx \nxx" \nxx \n"xx"\nxx \nxx\n"xxx xxx \nxx"';
var subst = '';
var result = str.replace(re, subst);
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.