【问题标题】:Regex CSV : Match quotes that are not delimiters正则表达式 CSV:匹配不是分隔符的引号
【发布时间】:2022-01-21 21:43:00
【问题描述】:

我正在处理一个构建错误的 csv 文件,我创建了一个仅匹配非分隔符的引号的正则表达式,在 this link 我成功了,但是您认为您可以优化我的正则表达式以仅包含引号和不是周围的字母,约束和开头或结尾的引号不考虑在内,例如:

"ModifTextePub";"ModifObservation";"Resume"Vitrine";"Observations"Criteres"";"InternetOK";"NumPhoto";"AmianteLe";"SNavantLe";"ActePrec";"ProprietairesPrec";"Situation";"FraisNotaires"

在这个例子中,只需要匹配 Resume " Vitrine 和 " Criteres "

我使用的正则表达式是

(.){1}(?<!;|\n|\r|\t)(")(?!;|\n|\r|\t)(.){1}

$1$3 代替。

【问题讨论】:

    标签: php regex expression


    【解决方案1】:

    可以将带有包含正字符类的负外观的正则表达式转换为具有包含否定字符类的正外观的模式:

    (?<=[^;\n\r\t])"(?=[^;\n\r\t])
    

    请参阅regex demo。替换将是一个空字符串。

    现在,只有在 " 之前和之后紧跟除 ;、CR、LF 或 TAB 之外的任何字符时,才会发生匹配。

    【讨论】:

    • 太棒了!非常感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多