正则表达式匹配一个或两个引号,但不是连续三个

 手机用户2502901613 发布于 2023-02-09 18:35

对于我的生活,我无法想象这一个.

我需要搜索以下文本,仅匹配粗体引号:

不匹配:"""这是一个python docstring"""

匹配:"这是一个常规字符串"

匹配:"" ←这是一个空字符串

我怎么能用正则表达式做到这一点?

这是我尝试过的:

不起作用:

(?!"")"(?

关闭,但不匹配双引号.

不起作用:

"(?

我天真地认为我可以添加我不想要的替代品,但逻辑最终会逆转.这个匹配所有内容,因为所有引号至少匹配一个替换项.

(请注意:我没有运行代码,因此使用的解决方案__doc__无济于事,我只是想在我的代码编辑器中查找和替换.)

1 个回答
  • 您可以使用 /(?<!")"{1,2}(?!")/

    DEMO

    尸检:

    (?<!")文字的负面观察".比赛不能在前面有这个角色

    "{1,2}文字"匹配一次或两次

    (?!")文字的负面预测".之后的比赛不能有这个角色

    你的第一次尝试可能会失败,因为这(?!")是一个负面的预测,并且(?<!")是一个负面的后视.在比赛开始之前先进行预测,或在比赛结束后进行后视是没有意义的.

    正则表达式可视化

    2023-02-09 18:37 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有