gpt4 book ai didi

regex - 正则表达式不匹配引号中的内容

转载 作者:行者123 更新时间:2023-12-04 21:49:37 26 4
gpt4 key购买 nike

我在 php preg_match 中使用了这段正则表达式来去除“:”和“(”中的尾随空格

([\(:])\s+

我遇到的问题是它最终去掉了引号内我需要的空格。例如,这个字符串:

img[style*="float: left"]

有没有办法编写正则表达式,使其匹配任何“:”或“(”,除非它用双引号引起来?

最佳答案

描述

这个例程将:

  • 跳过引号内的匹配项
  • 替换引号外的匹配项

Live Demo

代码

<?php

$string = 'img[style*="float: left"]
img: [style*="float: left"]
img( [style*="float: left"]
';


$regex = '/"[^"]*"|([:(])\s+/ims';

$output = preg_replace_callback(
$regex,
function ($matches) {
if (array_key_exists (1, $matches)) {
return $matches[1] ;
}
return $matches[0];
},
$string
);
echo "this is the output:" . $output;

输出

this is the output:img[style*="float: left"]
img:[style*="float: left"]
img([style*="float: left"]

关于regex - 正则表达式不匹配引号中的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17928427/

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