免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 4272 | 回复: 14

求教 正规表示式 写发。 [复制链接]

论坛徽章:
0
发表于 2011-03-17 17:46 |显示全部楼层
本帖最后由 lmtwl 于 2011-03-20 14:58 编辑

请教各位老大 :匹配如下

111,"850,116","6,523,775 B2",11,90,92  分成
111   "850,116"   "6,523,775 B2"  11  90  92





不好意思。各位老大,我可能没表达清楚 。。。

比如说 上面以“,”号分割的数组,是无限制的。而且引号内的“,“符号是必须保留的。。。


比如 :
111,"850,116","6,523,775 B2",11,90,92,"aaa,a1",bbb,"ccc,c1"...............

论坛徽章:
0
发表于 2011-03-17 18:06 |显示全部楼层
回复 1# lmtwl


    .*

论坛徽章:
145
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11狮子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龙
日期:2014-01-08 15:26:12技术图书徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
发表于 2011-03-17 18:25 |显示全部楼层
请教各位老大 :匹配如下

111,"850,116","6,523,775 B2",11,90,92  分成
111   "850,116"   "6,523,775 ...
lmtwl 发表于 2011-03-17 17:46



# echo '111,"850,116","6,523,775 B2",11,90,92' | perl -ne '{while($_){print "$1 " if s/^("[^"]+")(,|$)//;print "$1 " if s/^([^"]+?)(,|$)//}}'
111 "850,116" "6,523,775 B2" 11 90 92

论坛徽章:
0
发表于 2011-03-17 22:13 |显示全部楼层
回复 1# lmtwl


     echo '111,"850,116","6,523,775 B2",11,90,92'|sed 's/\,/ /1;s/\,/  /2;s/\,/ /4;s/\,/ /4;s/\,/ /4'

论坛徽章:
2
射手座
日期:2014-10-10 15:59:4715-16赛季CBA联赛之上海
日期:2016-03-03 10:27:14
发表于 2011-03-18 13:16 |显示全部楼层
echo "111,\"850,116\",\"6,523,775 B2\",11,90,92" |sed 's/,"/ "/g;s/,/ /4g'
111 "850,116" "6,523,775 B2" 11 90 92

论坛徽章:
0
发表于 2011-03-19 14:52 |显示全部楼层

  1. echo '111,"850,116","6,523,775 B2",11,90,92' | sed 's/,"/ "/g;s/",/" /g' | awk '{for(i=1;i<=NF;++i){if($i!~/^"/)gsub(/,/," ",$i)}print}'

复制代码

论坛徽章:
0
发表于 2011-03-19 18:23 |显示全部楼层
回复 5# yinyuemi


    写的很巧妙啊,请问下结尾的  4 是什么作用?

论坛徽章:
2
射手座
日期:2014-10-10 15:59:4715-16赛季CBA联赛之上海
日期:2016-03-03 10:27:14
发表于 2011-03-20 03:37 |显示全部楼层
回复  yinyuemi


    写的很巧妙啊,请问下结尾的  4 是什么作用?
fenginf 发表于 2011-03-19 18:23



    s/,/ /4g 替换从4个到最后的“,”

论坛徽章:
0
发表于 2011-03-20 13:15 |显示全部楼层
回复 8# yinyuemi


    谢谢,有的资料上没有这种用法,又找了些其他资料。

论坛徽章:
0
发表于 2011-03-20 14:46 |显示全部楼层
本帖最后由 lmtwl 于 2011-03-20 15:00 编辑

感谢大家的热心帮助,消化中。。。



再次请教下。。。
111 "850,116"  "6,523,775 B2" 11 90 92,"asdf","xde,as"。。。。。。。。。。。。。。。。

我后面可能存在很多的这种情况。。。

分号内的逗号,是不能替换的。。



特别感谢 下 jason680

perl 语言实现了,但是如果是正规表达式啦?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP