[英]Regex replace enters between quotes
如何替換文本文件中兩個引號之間的所有輸入。 第一個引號始終以制表符開頭,或者它是行中的第一個字符(csv文件)。 我嘗試了以下正則表達式
/(\t"|^")([^"]*)(\n)([^"]*")/gm
但是這個正則表達式只匹配兩個引號之間的第一個輸入,而不是全部。
例如,以下文字:
xx "xx
xx
xx"
xx
"xx"
xx
xx
"xxx xxx
xx"
應該成為
xx "xx xx xx"
xx
"xx"
xx
xx
"xxx xxx xx"
我閱讀了以下帖子( javascript正則表達式替換括號之間的空格 )非常相似,但正則表達式建議我的情況不可用。
使用Javascript替換,您可以使用函數作為替換 。
var str = 'foo \\n"a\\n" bar\\n'; str = str.replace(/"[^"]+"/g, function(m) { return m.replace(/\\n/g, ' '); }); console.log(str);
正則表達式"[^"]+"
將引用的東西與之間的一個或多個非引號相匹配。
根據需要添加選項卡或啟動到模式等條件: (?:\\t|^)"[^"]+"
\n(?=[^"]*"(?:[^"]*"[^"]*")*[^"]*$)
您可以使用它並替換為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);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.