免费注册 查看新帖 |

Chinaunix

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

字符串:abc123(小写字母与数字的组合) 有几种方法可以把小写字母与数字分开 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2010-02-12 15:32 |只看该作者
回复 10# 709101040516


    哈哈~我以前是做Java的。所以对这个比较熟悉和亲切。这个题目就是用的以前Java的思路。都差不多
不过我最近一直在学SED。这个用SED也能实现。 不过那个有自己的规则,得多练习才可以

论坛徽章:
0
12 [报告]
发表于 2010-02-12 15:32 |只看该作者
这个简单了一点
修改一下
把a1bb345555c字母数字分开得到如下结果
abbc
1345555
我是DBA 发表于 2010-02-12 14:59



    echo a1bb345555c | awk '{v=$0;gsub(/[a-z]/,"",v);gsub(/[0-9]/,"");print $0"\n"v}'

论坛徽章:
0
13 [报告]
发表于 2010-02-12 15:34 |只看该作者
回复 11# iori809


    但是你的顺序出错了。比如abc123efd342你会得出
dfecba
243321

论坛徽章:
0
14 [报告]
发表于 2010-02-12 15:35 |只看该作者
思路真好。呵呵

论坛徽章:
0
15 [报告]
发表于 2010-02-12 15:35 |只看该作者
回复 11# iori809


    得这样写
{
  for ( i = 1 ; i <= length($0) ; i++){
    if ( substr($0,i,1) ~ /[a-z]/ ){
       letter = letter substr($0,i,1)  
   }else{
       num = num substr($0,i,1)
  }
}
}
END{
   print letter"\n"num
}

论坛徽章:
0
16 [报告]
发表于 2010-02-12 15:38 |只看该作者
回复 13# 709101040516


    呵呵。

{
  for ( i = 1 ; i <= length($0) ; i++){
    if ( substr($0,i,1) ~ /[a-z]/ ){
       letter = letter  substr($0,i,1)   
   }else{
       num = num substr($0,i,1)  }
}
}
END{
   print letter"\n"num
}

这样就行了

论坛徽章:
0
17 [报告]
发表于 2010-02-12 15:51 |只看该作者
本帖最后由 bluewaterray 于 2010-02-12 15:53 编辑

Perl 可以吗?
  1. my $number;
  2. my $alpha;

  3. for (split //, $string) {
  4.     $number .= $_ if m/\d/;
  5.     $alpha .= $_ if m/[a-zA-Z]/;
  6. }
复制代码

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
18 [报告]
发表于 2010-02-12 17:13 |只看该作者
回复 10# 709101040516


   

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
19 [报告]
发表于 2010-02-12 18:48 |只看该作者
  1. sed 's/([a-z])([0-9])/\1\n\2/g;s/([0-9])([a-z])/\1\n\2/g;'
复制代码

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
20 [报告]
发表于 2010-02-15 23:06 |只看该作者
kenny@x60:~$ var=abc123xyz456
kenny@x60:~$ echo ${var//[0-9]}
abcxyz
kenny@x60:~$ echo ${var//[a-z]}
123456
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP