Javascript正则表达式删除双引号内的新行和双引号本身

时间:2017-11-09 13:22:36

标签: javascript regex

我在javascript中有正则表达式的问题。例如,我有编程语言的记录列表到我的csv文件。我想要的是我必须替换所有在双引号内有换行符的编程,以及带有下面示例输出空格的双引号。输出必须是Ruby on Rails和C ++,没有双引号和换行符。

SAMPLE OUTPUT

PYTHON

PHP

“Ruby on

导轨“

“C +

+“

我试过这个代码

我如何在双引号中包含新行

str.replace(/['"]+/g, ' ');

1 个答案:

答案 0 :(得分:0)

这个问题的难点在于你必须找到一种方法来知道换行符序列是否必须用空格或空字符串替换。 当换行符序列在单词边界之间时,这意味着在它之前和之后有一个单词[a-zA-Z0-9_](如on\nRails中所示)。在这种情况下,发送空间似乎是合乎逻辑的。 在其他情况下,例如C+\n+或以换行符开头或结尾的任何其他字符串,您可以返回一个空字符串。

txt = txt.replace(/"([^"]*)"/g, function (m,g) {
    return g.replace(/\b([\r\n]+)\b|[\r\n]+/g, function(n,h) {
        return h ? ' ' : '';
    });
});

如果您发现其他(有趣的)边缘情况,请告诉我。