Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex:Find only";它们不是分隔符_Regex_Csv - Fatal编程技术网

Regex:Find only";它们不是分隔符

Regex:Find only";它们不是分隔符,regex,csv,Regex,Csv,我正在尝试构建一个正则表达式,用于在CSV文件中查找所有非文本分隔符的“(由;分隔)。因此,规范如下: “不在行首 “前面没有; “后面没有 “不在一行的末尾 我使用node.js,因此没有可能的查找 下面是要测试的示例行: 123123;”这是一个文本。这些“引号”应该匹配,这一个不匹配;“文本”4125;“也不匹配” 提前感谢!您可以使用以下正则表达式: (?<!^|;)"(?!;|$) \r\n是Windows换行符,\n是UNIX换行符 下面是一个活生生的例子:我只想做:

我正在尝试构建一个正则表达式,用于在CSV文件中查找所有非文本分隔符的
(由
分隔)。因此,规范如下:

  • 不在行首
  • 前面没有
  • 后面没有
  • 不在一行的末尾
  • 我使用node.js,因此没有可能的查找

    下面是要测试的示例行:

    123123;”这是一个文本。这些“引号”应该匹配,这一个不匹配;“文本”4125;“也不匹配”
    


    提前感谢!

    您可以使用以下正则表达式:

    (?<!^|;)"(?!;|$)
    
    • \r\n
      是Windows换行符,
      \n
      是UNIX换行符
    下面是一个活生生的例子:

    我只想做:

    var s='123123;”这是一个文本。这些“引号”应该匹配,这一个不匹配;“文本”4125;“也不匹配”;
    res=s.replace(/([^;])”([^;])/g,“$1$2”);
    
    控制台日志(res)为什么要投反对票?非常感谢!唯一缺少的是第四个标准,所以我添加了一个
    \n
    ([^;\n])”([^;\n])
    @boernard:只有在最后一个引号后面有一个字符时,才需要添加
    \n
    ,比如
    废话“abc
    我在这里测试了这个,在第二行中,最后一个引号被删除了matched@boernard:好的,但是很奇怪,我已经在perl脚本中测试了whithin,它成功了。语言之间的解释可能有一些小的差异。@boernard:您是否也要删除双引号(即
    “引号”
    (?<!^|;|\r\n|\n)"(?!;|$|\r\n|\n)