我需要在php中更改字符串或数字的出现次数。在这种情况下,如果发生这种情况,我需要更改它:
[code:154545edppy]
// my code here
[/code]
到这个
[code]
// my code here
[/code]
我需要验证字母和字符串是否出现在打开块代码中。我试图用str_replace做这个,但它没有用。
我现在的代码:
$text = "[code:54as] [/code]";
$text = str_replace("[code: {(\d)}{(\w)}]", "[code]", $text);
$text = str_replace("[/code: {(\d)}{(\w)}]", "[/code]", $text);
echo $text;
答案 0 :(得分:2)
str_replace
是静态的。将preg_replace
与正则表达式一起使用即可完成任务。
类似的东西:
$text = "[code:54as] [/code]";
echo preg_replace('~(\[/?.*?):.*?\]~', '$1]', $text);
应该这样做。
PHP演示:https://eval.in/643544
正则表达式演示:https://regex101.com/r/mD1bM3/1
如果您只想在:
后使用字符类代替第二个.*?
来替换数字和字母。 [A-Za-z\d]*?
。