我有一個字符串,一個是PHP的正則表達式的幫助更換
[my_name] and another being <my_name>
我需要使用正則表達式來與BOB
搜索[]和<>括號內的任何文字和替換特定符號內的文本
我會提供示例代碼,但我甚至不知道從哪裏開始。任何幫助,將不勝感激
到目前爲止IV只是嘗試這樣做
$regex = [\^[*\]]
想這將尋找在[]標籤什麼
我有一個字符串,一個是PHP的正則表達式的幫助更換
[my_name] and another being <my_name>
我需要使用正則表達式來與BOB
搜索[]和<>括號內的任何文字和替換特定符號內的文本
我會提供示例代碼,但我甚至不知道從哪裏開始。任何幫助,將不勝感激
到目前爲止IV只是嘗試這樣做
$regex = [\^[*\]]
想這將尋找在[]標籤什麼
我想,下面應該工作:
preg_replace('/([\[<])[^\]>]+([\]>])/', "$1BOB$2", $str);
正則表達式的解釋:
([\[<]) -> First capturing group. Here we describe the starting characters using
a character class that contains [ and < (the [ is escaped as \[)
[^\]>]+ -> The stuff that comes between the [ and ] or the <and>. This is a
character class that says we want any character other than a ] or >.
The ] is escaped as \].
([\]>]) -> The second capturing group. We we describe the ending characters using
another character class. This is similar to the first capturing group.
替換模式使用反向引用來引用捕獲組。 $1
表示第一個捕獲組,其可以包含[
或<
。第二捕獲組由$2
表示,其可以包含]
或>
。
我添加了結尾分隔符。 – vikingmaster 2013-05-13 17:29:55
這工作謝謝你 – Yeak 2013-05-13 17:43:32
$str = "[my_name] and another being <my_name>";
$replace = "BOB";
preg_replace('/([\[<])[^\]]*([\]>])/i', "$1".$replace."$2", $str);
我不認爲這會奏效。這取代了與「BOB」匹配的任何內容。 – 2013-05-13 17:35:18
preg_replace_callback
是一個簡單的例子
$template = "Hello [your_name], from [my_name]";
$data = array(
"your_name"=>"Yevo",
"my_name"=>"Orangepill"
);
$func = function($matches) use ($data) {
print_r($matches);
return $data[$matches[1]];
};
echo preg_replace_callback('/[\[|<](.*)[\]\)]/U', $func, $template);
爲什麼不修改原來的答案而不是添加新的答案? – 2013-05-13 17:45:59
我會刪除舊的...保留它,因爲我認爲這可能對某人有用。 – Orangepill 2013-05-13 17:55:50
你有甚至試圖有點了解如何使用正則表達式? – Jerry 2013-05-13 17:11:34
@Jerry來吧,冷靜。這些問題對某些人來說可能是一個挑戰。我發現StackOverflow也是提高自己技能的好地方。 – vikingmaster 2013-05-13 17:14:50
@Jari如果你不知道從哪裏開始使用正則表達式,那麼你至少應該學習*東西*。所以OP中顯示出一些努力的問題更好地被接受。 – 2013-05-13 17:16:11