gpt4 book ai didi

用于查找未终止字符串的正则表达式

转载 作者:行者123 更新时间:2023-12-04 14:06:58 27 4
gpt4 key购买 nike

我需要在 CSV 文件中搜索以未终止的双引号字符串结尾的行。

例如:

1,2,a,b,"dog","rabbit

将匹配而
1,2,a,b,"dog","rabbit","cat bird"
1,2,a,b,"dog",rabbit

不会。

我对正则表达式的经验非常有限,我唯一能想到的就是
"[^"]*$

但是,这与行尾的最后一个引号相匹配。

这将如何完成?

最佳答案

假设引号不能被转义,你需要测试引号的奇偶性(确保它们是偶数而不是奇数)。正则表达式非常适合:

^(([^"]*"){2})*[^"]*$

这将匹配具有偶数个引号的所有行。您可以使用奇数反转所有字符串的结果。或者您可以添加另一个 ([^"]*")开头部分:
^[^"]*"(([^"]*"){2})*[^"]*$

同样,如果您可以使用不情愿的运算符而不是贪婪的运算符,则可以使用看起来更简单的表达式:
^((.*"){2})*.*$         #even
^.*"((.*"){2})*.*$ #odd

现在,如果引号可以转义,那完全是一个不同的问题,但方法是相似的:确定未转义引号的奇偶校验。

关于用于查找未终止字符串的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2906282/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com