简单任务正则表达式通过测试替换任何“%function test%”
Simple task regex expression replacing any "%function test%" by test
我正在尝试找到合适的表达式来替换任何以 :
开头的字符串
"%function
并以 :
结尾
%"
中间字符串例如:
"%function test%" 应该 return
test
和“%function test%”,“%function test%”应该return:
test,test
我试过了
preg_replace('/"%function (.*)?%"/', '',$string);
一开始我抱有很大的希望,因为我的第一个例子很好用,但多功能性不是很好。
有关更多信息,您可以在此处查看代码并尝试(一种 phpfiddle):http://sandbox.onlinephpfunctions.com/code/00232644b801271e2ffb2ddf4cd450ddffcb50c2
如有任何帮助,我们将不胜感激,
最好的问候。
通过在捕获组之外使用 ?
,您可以将其设为可选。相反,你想要的是一个非贪婪的 *
所以你必须这样做。其他选择是 ([^%]+)
preg_replace('/"%function (.*?)%"/', '',$string);
您可以使用环顾四周
(?<="%function )[^%]+(?=%")
preg_match_all( "/(?<=\"%function )[^%]+(?=%\")/", "\"%function test%\"", $matches);
会产生
Array ( [0] => Array (
[0] => test
)
)
%\s*\S+\s+(\S+?)\s*%
通过 </code> 尝试 this.Replace。查看演示。</p>
<p><a href="https://regex101.com/r/wZ0iA3/8" rel="nofollow">https://regex101.com/r/wZ0iA3/8</a></p>
<pre><code>$re = "/%\s*\S+\s+(\S+?)\s*%/im";
$str = "%function test%\n%function test%,% function test%";
$subst = "";
$result = preg_replace($re, $subst, $str);
我正在尝试找到合适的表达式来替换任何以 :
开头的字符串"%function
并以 :
结尾%"
中间字符串例如:
"%function test%" 应该 return
test
和“%function test%”,“%function test%”应该return:
test,test
我试过了
preg_replace('/"%function (.*)?%"/', '',$string);
一开始我抱有很大的希望,因为我的第一个例子很好用,但多功能性不是很好。
有关更多信息,您可以在此处查看代码并尝试(一种 phpfiddle):http://sandbox.onlinephpfunctions.com/code/00232644b801271e2ffb2ddf4cd450ddffcb50c2
如有任何帮助,我们将不胜感激, 最好的问候。
通过在捕获组之外使用 ?
,您可以将其设为可选。相反,你想要的是一个非贪婪的 *
所以你必须这样做。其他选择是 ([^%]+)
preg_replace('/"%function (.*?)%"/', '',$string);
您可以使用环顾四周
(?<="%function )[^%]+(?=%")
preg_match_all( "/(?<=\"%function )[^%]+(?=%\")/", "\"%function test%\"", $matches);
会产生
Array ( [0] => Array (
[0] => test
)
)
%\s*\S+\s+(\S+?)\s*%
通过 </code> 尝试 this.Replace。查看演示。</p>
<p><a href="https://regex101.com/r/wZ0iA3/8" rel="nofollow">https://regex101.com/r/wZ0iA3/8</a></p>
<pre><code>$re = "/%\s*\S+\s+(\S+?)\s*%/im";
$str = "%function test%\n%function test%,% function test%";
$subst = "";
$result = preg_replace($re, $subst, $str);