如何用正则表达式匹配到所有双引号内的逗号?

2017 年 7 月 20 日
 Seymer

数据形如: 我们希望 V2EX 能够成为"中文,世界"中氛围最好的社区,而实现这个目标,"需要,我们"所有人的共同努力:友善,公平,尊重知识和事实。

  1. 中文,世界 内的逗号;
  2. 需要,我们 内的逗号;
  3. 。。。
6515 次点击
所在节点    问与答
10 条回复
yunkchen
2017 年 7 月 20 日
r"\".*?(,).*?\""

是要这样?
AJian
2017 年 7 月 20 日
\".*?(,).*?\"
AJian
2017 年 7 月 20 日
ArcticL
2017 年 7 月 20 日
@AJian 请问(.*)?和(.*?) 有什么区别? 匹配的结果是不一样的
AJian
2017 年 7 月 20 日
一个是贪婪匹配一个是懒惰匹配,https://deerchao.net/tutorials/regex/regex.htm#greedyandlazy
geelaw
2017 年 7 月 20 日
那么,双引号不配对的情况呢?
geelaw
2017 年 7 月 20 日
@yunkchen
@AJian

"你好"是一句话,"你好吗"是另一句
geelaw
2017 年 7 月 20 日
一个简单的想法是:首先零宽断言,要求前缀从字符串开头开始,且具有恰好奇数个双引号;然后进入正文匹配一个逗号。

但是在引号不配对的时候这个问题不良定义。
ptrees
2017 年 7 月 21 日
@ArcticL 两个 ? 的意思都不一样,前者表示 0 或 1,后者表示非贪婪匹配
ArcticL
2017 年 7 月 21 日
@ptrees 清楚了,谢谢

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://study.congcong.us/t/376764

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX