免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: actan
打印 上一主题 下一主题

如何替换全角的空格(已解决!) [复制链接]

论坛徽章:
0
11 [报告]
发表于 2010-02-05 21:12 |只看该作者
我试了下,全角的utf8编码是3个ASCII字符,227 128 128(\xe3\x80\x80),
不开utf8 flag, 直接用这个匹配看可以不

论坛徽章:
0
12 [报告]
发表于 2010-02-09 13:57 |只看该作者
我试了下,全角的utf8编码是3个ASCII字符,227 128 128(\xe3\x80\x80),
不开utf8 flag, 直接用这个匹配看 ...
wind_ch 发表于 2010-02-05 21:12



这位兄台意思是说这样写吗?

$line =~ s/^\xe3\x80\x80+//g;

我试过了,不开use utf8;效果和我把 $qjkt定义为"一个全角空格"的效果是一样的

我最搞不清楚的是为什么要替换的文件和源代码编码都是UTF8,为什么 这句正则只给我替换了一个行首的全角空格,而不是两个

$line =~ s/^$qjkg+//g;  是这句话有问题吗?
global,而且加号是匹配一次或多次,而且默认是贪婪的吧?(我记错了吗)
应该两个空格甚至N个行首空格一下子替换完啊?

我上面的替换半角空格的正则,写法类似,就是贪婪的啊,一下子把所有半角的空格全替换光了
唯独全角的只替换了一个

论坛徽章:
0
13 [报告]
发表于 2010-02-09 13:59 |只看该作者
DATA中第一个是半角空格,后面是2个全角空格,最后是一个全角空格。

结果如下:

我爱你 哈哈  哈  ...
yybmsrs 发表于 2010-02-05 17:45



谢谢你的代码,我是想替换行首的空格,
中间的空格还不想替换,如果你的代码加上 ^ 还能一下子替换两个全角空格吗?

论坛徽章:
78
双子座
日期:2013-10-15 08:50:09天秤座
日期:2013-10-16 18:02:08白羊座
日期:2013-10-18 13:35:33天蝎座
日期:2013-10-18 13:37:06狮子座
日期:2013-10-18 13:40:31双子座
日期:2013-10-22 13:58:42戌狗
日期:2013-10-22 18:50:04CU十二周年纪念徽章
日期:2013-10-24 15:41:34巨蟹座
日期:2013-10-24 17:14:56处女座
日期:2013-10-24 17:15:30双子座
日期:2013-10-25 13:49:39午马
日期:2013-10-28 15:02:15
14 [报告]
发表于 2010-02-09 14:17 |只看该作者
谢谢你的代码,我是想替换行首的空格,
中间的空格还不想替换,如果你的代码加上 ^ 还能一下子替换两 ...
actan 发表于 2010-02-09 13:59



可以

论坛徽章:
0
15 [报告]
发表于 2010-02-09 14:28 |只看该作者
NND我这里怎么也打不出全角空格~

论坛徽章:
78
双子座
日期:2013-10-15 08:50:09天秤座
日期:2013-10-16 18:02:08白羊座
日期:2013-10-18 13:35:33天蝎座
日期:2013-10-18 13:37:06狮子座
日期:2013-10-18 13:40:31双子座
日期:2013-10-22 13:58:42戌狗
日期:2013-10-22 18:50:04CU十二周年纪念徽章
日期:2013-10-24 15:41:34巨蟹座
日期:2013-10-24 17:14:56处女座
日期:2013-10-24 17:15:30双子座
日期:2013-10-25 13:49:39午马
日期:2013-10-28 15:02:15
16 [报告]
发表于 2010-02-09 14:33 |只看该作者
NND我这里怎么也打不出全角空格~
兰花仙子 发表于 2010-02-09 14:28


输入法里面月亮和太阳切换的那个就是半角和全角。。

论坛徽章:
0
17 [报告]
发表于 2010-02-09 14:36 |只看该作者
本帖最后由 actan 于 2010-02-09 14:38 编辑
可以
yybmsrs 发表于 2010-02-09 14:17



不行啊大哥,我用你的代码,结果还是只替换了一个啊,有图为证:
分号和字之间还有一个全角空格啊



你的替换原理和我的一样啊,都是直接在源代码里输入 一个全角空格哪

结果应该也是一样的

论坛徽章:
0
18 [报告]
发表于 2010-02-09 14:41 |只看该作者
输入法里面月亮和太阳切换的那个就是半角和全角。。
yybmsrs 发表于 2010-02-09 14:33



    OK got it~

我这里可以正常替换哦~

$ cat han.pl
use strict;
use utf8;

my $str = "汉 字 中 国";
print $str,"\n";

$str=~s/\s+//g;
print $str,"\n";


$ perl han.pl
Wide character in print at han.pl line 5.
汉 字 中 国
Wide character in print at han.pl line 8.
汉字中国

论坛徽章:
0
19 [报告]
发表于 2010-02-09 14:43 |只看该作者
NND我这里怎么也打不出全角空格~
兰花仙子 发表于 2010-02-09 14:28



仙姐的输入法是什么的?我是这样的,直接把那个半月点一下成了一个圆球即是全角状态,再点一下就反过来了
  

然后再输入空格即是全角空格

论坛徽章:
0
20 [报告]
发表于 2010-02-09 14:47 |只看该作者
仙姐的输入法是什么的?我是这样的,直接把那个半月点一下成了一个圆球即是全角状态,再点一下就反过 ...
actan 发表于 2010-02-09 14:43



    偶用的ubuntu自带的输入法,没认真研究过,不过已经知道怎么输入了,把那个半月改成全月。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP