我在 $subject 上应用的替换很少,但我不想让旧替换 #(1 .. i-1) 的输出与当前替换 #i 匹配。
$subject1 = preg_replace($pat0, $rep0, $subject0);
$subject2 = preg_replace($pat1, $rep1, $subject1);
$subject3 = preg_replace($pat2, $rep2, $subject2);
Run Code Online (Sandbox Code Playgroud)
我尝试将一个preg_replace与数组用于模式和替换,希望它能够立即实现;但结果证明只是连续调用简单的preg_replace(当然有一些优化)
在我阅读了preg_replace_callback 之后,我想这不是一个解决方案。
有什么帮助吗?
快速的问题.
我想从以下字符串中删除sup标记,以及其中的所有内容.
$string = "Priority Mail<sup>®</sup> International";
Run Code Online (Sandbox Code Playgroud)
我该怎么办?
我想使用preg_replace()删除包含其内容的括号,但我无法在模式中使用延迟(非贪婪),因为结束括号是结束字符,括号之间的文本始终是随机字符长度,可以包含数字,下划线和连字符.
码-
$array = array(
"Text i want to keep (txt to remove)",
"Random txt (some more random txt)",
"Keep this (remove)",
"I like bananas (txt)"
);
$pattern = "@pattern@";
foreach($array as $new_txt){
$new_outputs .= preg_replace($pattern, '', $new_txt)."\n";
}
echo $new_outputs;
Run Code Online (Sandbox Code Playgroud)
想要输出 -
Text i want to keep
Random txt
Keep this
I like bananas
Run Code Online (Sandbox Code Playgroud)
我不太使用正则表达式,找不到任何解决我问题的方法.
原谅我,但是当我查看正则表达式时,它就像一只山羊盯着新围栏。
这 ( /\p{C}+/u) 似乎工作正常,但去掉了换行符/回车符和制表符:
$str = "
<pre>
te" . chr(31) . "st
test
</pre>
";
echo $str;
echo preg_replace('/\p{C}+/u', '',$str);
Run Code Online (Sandbox Code Playgroud)
我怎么会把它们留在里面?
我需要从字符串中删除所有特殊字符,除了 - ( )
到目前为止我有这个代码
$q = preg_replace('/[^A-Za-z0-9\-]/', '', $q); //removes ALL characters
Run Code Online (Sandbox Code Playgroud)
如何排除- ( )?
我知道这应该从字符串中删除任何字符,只保留数字和英文字母。
$txtafter = preg_replace("/[^a-zA-Z 0-9]+/","",$txtbefore);
Run Code Online (Sandbox Code Playgroud)
但我希望删除任何特殊字符并保留任何语言(如阿拉伯语或日语)的任何字母。
我正在研究一些函数,用简单的 html dom 从 url 中获取少量数据。
但是其中一个数据是图像,图像后面有问号和更多信息。
所以 url 的例子是这样的。
http://somesite.com/uploaded/images/8.jpg?m=eSuQKgaaaa&mh=t0i7nVhjZleTJ5Ih
Run Code Online (Sandbox Code Playgroud)
所以这个问号后面的内容是某种将图像调整为小尺寸的代码。
如果我只是接受这个
http://somesite.com/uploaded/images/8.jpg
Run Code Online (Sandbox Code Playgroud)
图像将具有更大的分辨率,这就是我所需要的。
我知道有一个像 preg_match 这样的函数,但我从不理解其中的表达式。
我是否有可能以某种方式删除问号及其背后的所有内容?
我有以下字符串:
Welcome [firstname] [lastname]
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用,preg_replace()以便将 [firstname] 替换为Marcello并将 [lastname] 替换为Silvestri。
我只能找到获取括号内文本的方法,但我想自己替换括号。
$string = "Welcome [firstname] [lastname]";
$patterns = array();
$patterns[0] = '\[firstname\]';
$patterns[1] = '\[lastname\]';
$replacements = array();
$replacements[0] = 'Marcello';
$replacements[1] = 'Silvestri';
echo preg_replace($patterns, $array, $string]);
Run Code Online (Sandbox Code Playgroud)
我还尝试\[(.*?)\]尝试替换所有内容,而不管方括号内容如何,但我得到了类似的东西[Marcello],而我只想要Marcello.
如何替换包含方括号的内容?
我想要做的是在字符串中找到问号并将其替换&为第一个除外。到目前为止我的代码:
$str = 'www.domain.com?adult=2&airport=40-48?destination=recko';
echo preg_replace(array('/[?]/'), '&', $str );
Run Code Online (Sandbox Code Playgroud)
输出:
www.domain.com&adult=2&airport=40-48&destination=recko
Run Code Online (Sandbox Code Playgroud)
我怎样才能忽略 的第一次出现??
我试图在打开括号后和圆括号和方括号的括号之前删除一个或多个空格.
$s = "This is ( a sample ) [ string ] to play with"
Run Code Online (Sandbox Code Playgroud)
预期结果:
"This is (a sample) [string] to play with"
Run Code Online (Sandbox Code Playgroud)
我设法删除空格之前:
$s = preg_replace('/\s+(?=[\])])/', '', $s);
Run Code Online (Sandbox Code Playgroud)
结果:
"This is ( a sample) [ string] to play with"
Run Code Online (Sandbox Code Playgroud)
但不是空格后的括号!