我需要一个简单的正则表达式用于php preg_replace:输入:快速棕色:否:狐狸等 输出:快速棕色!|没有|!狐狸等
:东西: 至 !|东西|!
答案 0 :(得分:2)
试试这个:
$str = preg_replace('/:([^:]+):/', '!|\\1|!', $str);
答案 1 :(得分:2)
$output = preg_replace('/:([^ ]+):/', '!|$1|!', $input);
您可能希望将[^ ]
替换为更具体的设置,具体取决于您期望在:
之间的内容。
答案 2 :(得分:0)
这取决于冒号之间是否允许空格。如果不是:
$out = preg_replace('!:([^ ]+):!', '!|$1|!', $in);
很好。您可能还想考虑使用非贪婪的表达式:
$out = preg_replace('!:(.+?):!', '!|$1|!', $in);
这是另一种选择:
$out = preg_replace('!:([^:]+):!', '!|$1|!', $in);