【在线等待】~~用正则如何替换前面的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传值问题求教!! 大量数据生成静态HTML的问题 使用jquery,如何在单击链接的时候动态改变表单的值并提交表单? 大家一般是怎么建站的 如果按指定数值分割字符串? 得到查询记录总数问题 小弟新学PHP,请教各位大神,环境配置和调试的问题 求PHP如何在文本框中输出信息? 急求PHP socket编程的详细教程或例子! ~~~ 或求STMP类的使用方法~~~ 关于"=="和strcmp() 关于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);