免费注册 查看新帖 |

Chinaunix

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

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

论坛徽章:
0
21 [报告]
发表于 2010-02-09 14:49 |只看该作者
OK got it~

我这里可以正常替换哦~

$ cat han.pl
use strict;
use utf8;

my $str =  ...
兰花仙子 发表于 2010-02-09 14:41


的确,仙姐的代码我改了下,也是可以的

use strict;
use utf8;

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

$str=~s/^\s+//g;
print $str,"\n";
   
不过为什么我从文件读入了就不行呢,我再试试

论坛徽章:
0
22 [报告]
发表于 2010-02-09 17:56 |只看该作者
回复 12# actan


    你該寫成$line =~ s/^(?qjkg)+//;

论坛徽章:
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
23 [报告]
发表于 2010-02-09 19:42 |只看该作者
有点迷糊了  全角的空格和半角的空格 都是\s

论坛徽章:
0
24 [报告]
发表于 2010-02-10 16:28 |只看该作者
回复  actan


    你該寫成$line =~ s/^(?qjkg)+//;
wind_ch 发表于 2010-02-09 17:56



多谢wind!

完美解决!!
原来是一个优先级的问题啊?
  1.         $line =~ s/^($qjkg)+//g;
复制代码
这下好了,行首的1到N个全角空格都可以完全替换掉了!

论坛徽章:
0
25 [报告]
发表于 2010-02-10 16:30 |只看该作者
有点迷糊了  全角的空格和半角的空格 都是\s
yybmsrs 发表于 2010-02-09 19:42



我代码里没有use uft8, 也没有use Encode

不过全角的空格可不是 \s啊

是在代码里输入的一个真正的全角空格

呵呵

论坛徽章:
5
狮子座
日期:2013-08-20 10:12:24午马
日期:2013-11-23 18:04:102015年辞旧岁徽章
日期:2015-03-03 16:54:152015亚冠之德黑兰石油
日期:2015-06-29 18:11:1115-16赛季CBA联赛之新疆
日期:2024-02-21 10:00:53
26 [报告]
发表于 2010-02-10 17:43 |只看该作者
文件是什么编码?如果文件里面不是utf-8的化自然就有麻烦了= =

论坛徽章:
0
27 [报告]
发表于 2010-02-10 20:01 |只看该作者
多谢wind!

完美解决!!
原来是一个优先级的问题啊?这下好了,行首的1到N个全角空格都可以完全替 ...
actan 发表于 2010-02-10 16:28


这不是个优先级问题,这里也看不到什么优先级,这里: ( $xxx )+  的括号,只是一个为量词分组的作用,因为你的全角的空格,对应的unicode编码,实际是多个代码点,经过内插 替换后,加号只是重复了最后一个代码点,而括号括起来后,加号对多个代码点同时作用,自然没有问题了~
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP