[英]Replace all occurrences using preg_replace
下面的代碼運行完美:
$string = '(test1)';
$new = preg_replace('/^\(+.+\)+$/','word',$string);
echo $new;
輸出:
word
如果代碼是這樣的:
$string = '(test1) (test2) (test3)';
如何生成輸出: word word word
?
為什么我的正則表達式不起作用?
^ and $
是錨點,這意味着匹配應從字符串的開頭開始並擴展到字符串的結尾
.
表示匹配換行符以外的任何內容, +
表示一個或多個,默認情況下,正則表達式本質上是貪婪的,因此它會嘗試盡可能匹配我們想要匹配的位置( )
因此我們需要稍微改變一下模式
您可以使用
\([^)]+\)
$string = '(test1) (test2) (test3)';
$new = preg_replace('/\([^)]+\)/','word',$string);
echo $new;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.