社区
基础编程
帖子详情
【在线等待】~~用正则如何替换前面的N个空格呢? ~~
zhiin1
2005-11-29 12:19:20
有一字符串前面有N个半角空格(中间与后面也可能包含半角空格)
如果我想把前面的N个半角空格每两个换成一个全角空格用正则应该怎么做呢?
(例如:如果前面有11个半角空格,那么就换成5个全角空格与剩余的一个半角空格)
...全文
257
13
打赏
收藏
【在线等待】~~用正则如何替换前面的N个空格呢? ~~
有一字符串前面有N个半角空格(中间与后面也可能包含半角空格) 如果我想把前面的N个半角空格每两个换成一个全角空格用正则应该怎么做呢? (例如:如果前面有11个半角空格,那么就换成5个全角空格与剩余的一个半角空格)
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Gdj
2005-11-30
打赏
举报
回复
其实这么多方法都差不多的。随便用一个吧。看个人喜好了。
Gdj
2005-11-30
打赏
举报
回复
$str='_____ABCD___EFG';
echo preg_replace("/^((__)*)(.*?)/e","str_replace('__','—','$1').'$3'",$str);
gu1dai
2005-11-29
打赏
举报
回复
[\t ]{2}
表示tab或空格,匹配2次。
不知道你要这个正则有什么用。
或许你解决问题的思路需要改一下。
zhiin1
2005-11-29
打赏
举报
回复
谢谢各位!
如果正则可以取得匹配的个数就好了 :-)
叮咚叮咚叮叮咚
2005-11-29
打赏
举报
回复
\s*
xuzuning
2005-11-29
打赏
举报
回复
直接用正则表达式是不能完成的,要借助工具
//为了便于检查,分别用_和—代替半角和全角空格
//方法一
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);
piner
2005-11-29
打赏
举报
回复
没写出来,不过想了一个比较笨一点的办法
$str = " aa bbb ";
$aa = str_replace(ltrim($str), "", $str);
$bb = preg_replace("/([\s]{2})/","\t",$aa);
echo $bb.ltrim($str);
Gdj
2005-11-29
打赏
举报
回复
只不过写错了。只能转第一个空格>:D
等会有空了我再改正。不过估计一会已经有人发了。
zalvsa
2005-11-29
打赏
举报
回复
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>";
Gdj
2005-11-29
打赏
举报
回复
我没误解你的意思。我的那个正则就是把半角变全角的。
zalvsa
2005-11-29
打赏
举报
回复
正则烂,提供个比较笨的方法:分割字符串判断
zhiin1
2005-11-29
打赏
举报
回复
gu1dai(异域苍穹......追夢人) : 行不通!
Gdj(陈水.智商只有129.非卖品): 误解我的意思,我要的是把半角变全角!
Gdj
2005-11-29
打赏
举报
回复
$str=preg_replace("/^([ ]*) /","$1 ",$str);
Java
正则
表达式详解
Java
正则
表达式是用于处理文本和匹配模式的强大工具,尤其在编程中,它能帮助开发者高效地查找、
替换
和解析字符串。虽然Java规范在某些版本中才开始内置
正则
表达式支持,但在
等待
官方更新的同时,开发人员可以通过第...
一些常用的shell命令
+ *:匹配 0 个或多个
前面
的字符 + []:匹配 [] 内的字符,可以是一个单字符,也可以是字符序列 + \:用来屏蔽一个元字符的特殊含义 *
正则
表达式的使用: + {n}:匹配
前面
的模式恰好 n 次 + {n,}:匹配
前面
的...
shell~case+函数+
正则
函数+
正则
shell
正则
表达式
正则
元字符,
正则
判断,grep、egrep
正则
判断,sed编辑(关闭selinux,注释编辑等)。awk编辑,expect自动化交互命令工具实现:批量免密连接
Nginx
正则
表达与Rewrite跳转
rewrite功能就是,使用nginx提供的全局变量或自己设置的变量,结合
正则
表达式和标记位实现URL重写以及重定向。比如更换域名后需要保持旧的域名能跳转到新的域名上、某网页发生改变需要跳转到新的页面、网站防盗链...
基础编程
21,891
社区成员
140,342
社区内容
发帖
与我相关
我的任务
基础编程
从PHP安装配置,PHP入门,PHP基础到PHP应用
复制链接
扫一扫
分享
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章