prege_replace的正则表达式剪切了一个字符串

时间:2014-02-16 23:18:47

标签: php regex

我想从这个“-left”中取出: “利润率左-BGC” 我做到了,但它返回“margin-left-bgc”

$texte = 'margin-left-bgc';
$texte = preg_replace('#^(\-?{1}[a-z]{1,3})$#isU',
'$1', $texte);
echo $texte;

我的正则表达式出了什么问题?

由于

2 个答案:

答案 0 :(得分:1)

str_replace()将更容易和更快地百万倍

$texte = 'margin-left-bgc';
echo str_replace('-left','',$texte); //margin-bgc 

评论后仍然可以:

echo str_replace(array('-left','-bottom','-right'),'',$texte); //margin-bgc 

答案 1 :(得分:0)

所以......你只是想这样做?

<?php
$texte = 'margin-left-bgc';
$texte = preg_replace('/(^\w{6})\-\w{4}\-(\w+$)/','$1-$2', $texte);
echo $texte;

测试一下。