gpt4 book ai didi

regex - 替换外部单引号 (') to double (") 和内部双引号 (") to single qoutes (' )

转载 作者:行者123 更新时间:2023-12-04 19:27:49 24 4
gpt4 key购买 nike

我有这样的事情:

$class = 'class="cl"' . " style=" . '"color:black,' . "background:red;" . '"';

正则表达式有什么简单的方法可以将此代码格式化为 " ' ' "风格?
我的意思是:
$class = "class='cl'" . " style=" . "'color:black," . "background:red;" . "'";

我试过这个正则表达式:

'(?!(([^"]"){2})[^"]*$)



但这取代了外部单引号 '只要。我怎样才能用单引号替换内部双引号?

最佳答案

您可以分三步执行此操作,其中只有第一个需要正则表达式:

  • 用未使用的字符(例如 µ )替换每个外部引号(无论是单引号还是双引号),一次一对:

    查找: ('|")(((?!\1).)*). 回复: µ\2µ
  • 用单引号替换每个剩余的双引号,因为步骤 1 的结果是它们是内部的:

    查找: " 回复: '
  • 用双引号替换每个出现的特殊字符(步骤 1)

    查找: µ 回复: "

  • 显然,第一个(也是唯一的)正则表达式具有主要的魔力:它捕获它找到的第一个引号(单引号或双引号),然后捕获字符直到下一次出现相同类型的引号(使用 \1 反向引用在否定条件下并最终将第二次出现与 . 匹配)。这样做的条件是所有外部引号都是成对出现的。

    当您启动第一个替换时,请确保您的插入符号位于文本的最开头,以便它在任何引号对之外开始。

    注意:PHP(您似乎正在使用它,但在其他几种语言中也是如此)允许使用反斜杠对带有字符串文字的引号进行转义。如果您的输入中存在此类转义,则任务会变得更加复杂,但这是可能的。

    关于regex - 替换外部单引号 (') to double (") 和内部双引号 (") to single qoutes (' ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50762876/

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