簡體   English   中英

正則表達式替換在引號之間輸入

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM