【在线等待】~~用正则如何替换前面的N个空格呢? ~~ [\t ]{2}表示tab或空格,匹配2次。不知道你要这个正则有什么用。或许你解决问题的思路需要改一下。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 $str=preg_replace("/^([ ]*) /","$1 ",$str); gu1dai(异域苍穹......追夢人) : 行不通! Gdj(陈水.智商只有129.非卖品): 误解我的意思,我要的是把半角变全角! for($i=0;$i<strlen($value);$i++){ $first = substr($value,$i,1); $second = substr($value,$i+1,1); $third = ''; if($first == ' ' and $second == ' '){ $third = ' '; $i++; $end .= $third; continue; }else{ $end .= $first; }}echo '*'.$end."<br>"; 只不过写错了。只能转第一个空格>:D等会有空了我再改正。不过估计一会已经有人发了。 没写出来,不过想了一个比较笨一点的办法$str = " aa bbb ";$aa = str_replace(ltrim($str), "", $str);$bb = preg_replace("/([\s]{2})/","\t",$aa);echo $bb.ltrim($str); 直接用正则表达式是不能完成的,要借助工具//为了便于检查,分别用_和—代替半角和全角空格//方法一function foo($s) { $n = floor(strlen($s[1])/2); $m = strlen($s[1])%2; return str_repeat('—', $n).($m ? substr($s[1], -1) : '');}$s = '_____ABCD_EFG';echo preg_replace_callback('/^(_+)/', 'foo', $s );//方法二function foo1($s) { $n = floor(strlen($s)/2); $m = strlen($s)%2; return str_repeat('—', $n).($m ? substr($s, -1) : '');}$s = '_____ABCD_EFG';echo preg_replace('/^(_+)/e', 'foo1("$1")', $s );//方法三$s = '_____ABCD_EFG';do { $t = $s; $s = preg_replace('/^(_*)__/', '$1—', $t);}while($t != $s);echo $s;//方法四$s = '________ABCD_EFG';$p = array('/(^)__/','/(—)__/','/(—)__/','/(—)__/','/(—)__/','/(—)__/',);echo '<br>';echo preg_replace($p, '$1—', $s); $str='_____ABCD___EFG';echo preg_replace("/^((__)*)(.*?)/e","str_replace('__','—','$1').'$3'",$str); 用户等级判断条件问题 PHP弹出窗口问题,高分相送 一个菜鸟问题。关于字符串截取的问题 百分求一个PHP函数 跨页面后,session读取失败的问题 php对ajax post过来的数据的处理 如何在验证码图片中实现扭曲、变形、错位等干扰方案? 子窗口的值如何传入父窗口的指定位置中 怎样给一个button加上onclick=跳转的功能? 关于php中ssh2_exec执行问题 关于php和smarty的问题,救命啊~~~~ 请问sleep与usleep的区别
$first = substr($value,$i,1);
$second = substr($value,$i+1,1);
$third = '';
if($first == ' ' and $second == ' '){
$third = ' ';
$i++;
$end .= $third;
continue;
}else{
$end .= $first;
}
}
echo '*'.$end."<br>";
等会有空了我再改正。不过估计一会已经有人发了。
$str = " aa bbb ";
$aa = str_replace(ltrim($str), "", $str);
$bb = preg_replace("/([\s]{2})/","\t",$aa);echo $bb.ltrim($str);
function foo($s) {
$n = floor(strlen($s[1])/2);
$m = strlen($s[1])%2;
return str_repeat('—', $n).($m ? substr($s[1], -1) : '');
}
$s = '_____ABCD_EFG';
echo preg_replace_callback('/^(_+)/', 'foo', $s );//方法二
function foo1($s) {
$n = floor(strlen($s)/2);
$m = strlen($s)%2;
return str_repeat('—', $n).($m ? substr($s, -1) : '');
}
$s = '_____ABCD_EFG';
echo preg_replace('/^(_+)/e', 'foo1("$1")', $s );//方法三
$s = '_____ABCD_EFG';
do {
$t = $s;
$s = preg_replace('/^(_*)__/', '$1—', $t);
}while($t != $s);
echo $s;//方法四
$s = '________ABCD_EFG';
$p = array(
'/(^)__/',
'/(—)__/',
'/(—)__/',
'/(—)__/',
'/(—)__/',
'/(—)__/',
);
echo '<br>';
echo preg_replace($p, '$1—', $s);