我正在尝试构建一个正则表达式,该正则表达式找到CSV文件中的所有"
(由;
分隔),而不是文本分隔符。所以规格是:
"
不在行的开头"
不在;
"
后面没有;
"
不在一行我使用node.js,所以没有可能的背后。
这是一个用于测试的示例行:
123123;"This is a text. These "quotes" should be matched, this one not";"text";4125;"Also no match"
提前致谢!
答案 0 :(得分:1)
我只是这样做:
var s = '123123;"This is a text. These "quotes" should be matched, this one not";"text";4125;"Also no match"';
res = s.replace(/([^;])"([^;])/g, '$1$2');
console.log(res);

答案 1 :(得分:0)
您可以使用以下正则表达式:
(?<!^|;)"(?!;|$)
(?<!^|;)
前面的标记不能是^
(字符串的开头)和;
(?!;|$)
后续令牌不能是$
(字符串结尾)和;
/g
和多行标记/m
使其正常工作以下是一个实例:https://regex101.com/r/bqdQCB/2
如果您不想使用多行标记/m
,则可以使用以下正则表达式(也使用换行符):
(?<!^|;|\r\n|\n)"(?!;|$|\r\n|\n)
\r\n
是Windows换行符,\n
是UNIX换行符以下是一个实例:https://regex101.com/r/bqdQCB/3