更改字符串内的发生

时间:2016-09-16 14:08:31

标签: php

我需要在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;

1 个答案:

答案 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]*?