免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4708 | 回复: 3
打印 上一主题 下一主题

[文本处理] tcl regexp 精确匹配 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-01-07 13:42 |只看该作者 |倒序浏览
请问:
假设: 变量$tf_2run中有 tsmc tsmc16 tsmc20

我只想用regexp匹配到tsmc,应该怎么办

regexp {tsmc} $tf_2run

这样写的话带有tsmc的都会被匹配到

谢谢

论坛徽章:
769
金牛座
日期:2014-02-26 17:49:58水瓶座
日期:2014-02-26 18:10:15白羊座
日期:2014-04-15 19:29:52寅虎
日期:2014-04-17 19:43:21酉鸡
日期:2014-04-19 21:24:10子鼠
日期:2014-04-22 13:55:24卯兔
日期:2014-04-22 14:20:58亥猪
日期:2014-04-22 16:13:09狮子座
日期:2014-05-05 22:31:17摩羯座
日期:2014-05-06 10:32:53处女座
日期:2014-05-12 09:23:11子鼠
日期:2014-05-21 18:21:27
2 [报告]
发表于 2014-01-07 13:59 |只看该作者
回复 1# b4and5
电脑上没regexp,应该有个元字符来精确匹配
单词开始结束等,像正则中的\b awk中的 \< \> \Y等
试了下awk,这样是可以的
  1. tf_2run="tsmc tsmc16 tsmc20";echo $tf_2run|awk '{for(i=1;i<=NF;i++)if($i~/\<tsmc\>/)print $i}'

  2. tsmc
复制代码

论坛徽章:
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
3 [报告]
发表于 2014-01-07 14:22 |只看该作者
回复 1# b4and5


http://www.tcl.tk/man/tcl8.4/TclCmd/re_syntax.htm#M55

regexp {\ytsmc\y} "tsmc 16"
regexp {\ytsmc\y} "tsmc16"

Note: usually we use the \b in regular express but TCL use the \y

论坛徽章:
0
4 [报告]
发表于 2014-01-07 15:36 |只看该作者
多谢楼上二位!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP