Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/236.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php regex_在第一次匹配后替换停止_Php_Regex_Preg Replace - Fatal编程技术网

php regex_在第一次匹配后替换停止

php regex_在第一次匹配后替换停止,php,regex,preg-replace,Php,Regex,Preg Replace,我试图用一个新的名称替换第一次出现的css大小(px | pt | em)- 因此: 64px 64px#123456 将成为: -64px 64px#123456 我正在使用下一个正则表达式: preg|u replace(/(*\d+(?:px | e[mx]|%))\s(*\d+(?:px | e[mx]|%){1,1}/si“,-$1”,$input|行) 当只有2套尺寸,但有4套尺寸时,效果非常好,如: 64px 64px 12px 12px#123456in获取下一个结果: -64p

我试图用一个新的名称替换第一次出现的css大小(px | pt | em)- 因此:
64px 64px#123456
将成为:
-64px 64px#123456

我正在使用下一个正则表达式:
preg|u replace(/(*\d+(?:px | e[mx]|%))\s(*\d+(?:px | e[mx]|%){1,1}/si“,-$1”,$input|行)

当只有2套尺寸,但有4套尺寸时,效果非常好,如:
64px 64px 12px 12px#123456
in获取下一个结果:
-64px 64px-12px 12px#123456
。 第一次发生后,我能做些什么来阻止它?
谢谢

使用4。preg_replace的参数您可以限制要执行的替换量:

极限

The maximum possible replacements for each pattern in each subject string. Defaults to -1 (no limit).
所以你应该这样做:

preg_replace("/((-*\d+(?:px|e[mx]|%)?)\s(-*\d+(?:px|e[mx]|%)?)){1,1}?/si",
"-$1", $input_lines, 1);

我可以问一下为什么要用JavaScript修改CSS字符串吗?这听起来像是一个非常奇怪的用例。@ArunKillu:这不起作用,据我所知,preg_replace@FritsvanCampen中没有
g
:我正在解析css文件。不要这样做。你想在浏览器本身为你解析时解析css,否则如果这个regexp遇到-64px,它会将其修改为--64px…谢谢,我忘记了这个论点:-)哎呀。。。我又误读了一个问题。我刚刚删除了我的虚假评论。