【发布时间】:2016-06-07 09:13:59
【问题描述】:
如何替换文本文件中两个引号之间的所有输入。第一个引号总是以制表符开头,或者它是行中的第一个字符(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 regex replace spaces between brackets )非常相似,但正则表达式建议在我的情况下不可用。
【问题讨论】:
-
这是什么语言? Javascript?此外,如果您有 CSV 文件,请使用 CSV 解析器。
-
一个正则表达式来处理它可能会变得非常丑陋和缓慢。考虑一种多通道方法: 1. 提取所有引用的文本; 2. 替换引用文本中的all
\n; 3. 用更正的引用部分重新组装未引用的部分。 -
@Tomalak 我更新了问题,javascript 很好。我正在使用 csv 解析器,但由于在错误的位置输入,此解析器给出错误。
-
然后使用更好的解析器。例如,papaparse.com 可以很好地处理引用值和值中的换行符。不要为此使用正则表达式。
标签: javascript regex