免费注册 查看新帖 |

Chinaunix

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

提取数字 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2016-07-28 11:26 |只看该作者 |倒序浏览
如下字符串:
锡厚:工艺要求QFP位置:2.5-40um,单点2.0um,平均>=2.5um;;锡条:SN100N(指定);锡面积(pnl):0.155sq/ft(8.52%)";

如何提供 平均>=2.5um中的2.5,
还有0.155sq/ft中的0.155

这几个数字是变化的,如何提取?

谢谢

论坛徽章:
0
2 [报告]
发表于 2016-07-28 11:27 |只看该作者
还有,数字不一定有小数点

论坛徽章:
307
程序设计版块每周发帖之星
日期:2016-04-08 00:41:33操作系统版块每日发帖之星
日期:2015-09-02 06:20:00每日论坛发贴之星
日期:2015-09-02 06:20:00程序设计版块每日发帖之星
日期:2015-09-04 06:20:00每日论坛发贴之星
日期:2015-09-04 06:20:00每周论坛发贴之星
日期:2015-09-06 22:22:00程序设计版块每日发帖之星
日期:2015-09-09 06:20:00程序设计版块每日发帖之星
日期:2015-09-19 06:20:00程序设计版块每日发帖之星
日期:2015-09-20 06:20:00每日论坛发贴之星
日期:2015-09-20 06:20:00程序设计版块每日发帖之星
日期:2015-09-22 06:20:00程序设计版块每日发帖之星
日期:2015-09-24 06:20:00
3 [报告]
发表于 2016-07-28 12:19 |只看该作者
  1. perl -ple '$_=join("\n",m!(?|>=([\d.]+)|([\d.]+)sq/ft)!g)' f
复制代码
2.5
0.155

论坛徽章:
0
4 [报告]
发表于 2016-07-28 14:20 |只看该作者
感谢,我尝试把提取的数字放在数组里,要怎么改一下?

谢谢~

论坛徽章:
0
5 [报告]
发表于 2016-07-28 14:26 |只看该作者
可以了,非常感谢~

如果数字后面有空格结果不对,能改一下吗?

论坛徽章:
307
程序设计版块每周发帖之星
日期:2016-04-08 00:41:33操作系统版块每日发帖之星
日期:2015-09-02 06:20:00每日论坛发贴之星
日期:2015-09-02 06:20:00程序设计版块每日发帖之星
日期:2015-09-04 06:20:00每日论坛发贴之星
日期:2015-09-04 06:20:00每周论坛发贴之星
日期:2015-09-06 22:22:00程序设计版块每日发帖之星
日期:2015-09-09 06:20:00程序设计版块每日发帖之星
日期:2015-09-19 06:20:00程序设计版块每日发帖之星
日期:2015-09-20 06:20:00每日论坛发贴之星
日期:2015-09-20 06:20:00程序设计版块每日发帖之星
日期:2015-09-22 06:20:00程序设计版块每日发帖之星
日期:2015-09-24 06:20:00
6 [报告]
发表于 2016-07-28 17:25 |只看该作者
如果数字后面有空格结果不对,能改一下吗?

请给出示例文本, 不太明白是啥意思.

论坛徽章:
0
7 [报告]
发表于 2016-07-28 18:02 |只看该作者
锡厚:工艺要求QFP位置:2.5-40um,单点2.0um,平均>=2.8um;,锡厚内部要求控制2.5-40um 锡条(指定):ANCHEN SN100N 锡面积(PNL):0.814sq/ft(11.44%)                                                                                                                                                                                                                                                                                                                                                                                                                                                                              

如上字符串,需要条件判断一下 :

1, 如果 没有 平均>=2.8um的2.8,则取值2.5-40um中的2.5;
2,把每条字符串的提取结果放在一个数组里。

空格我已经用软件清空了,

请帮忙一下,谢谢!


论坛徽章:
307
程序设计版块每周发帖之星
日期:2016-04-08 00:41:33操作系统版块每日发帖之星
日期:2015-09-02 06:20:00每日论坛发贴之星
日期:2015-09-02 06:20:00程序设计版块每日发帖之星
日期:2015-09-04 06:20:00每日论坛发贴之星
日期:2015-09-04 06:20:00每周论坛发贴之星
日期:2015-09-06 22:22:00程序设计版块每日发帖之星
日期:2015-09-09 06:20:00程序设计版块每日发帖之星
日期:2015-09-19 06:20:00程序设计版块每日发帖之星
日期:2015-09-20 06:20:00每日论坛发贴之星
日期:2015-09-20 06:20:00程序设计版块每日发帖之星
日期:2015-09-22 06:20:00程序设计版块每日发帖之星
日期:2015-09-24 06:20:00
8 [报告]
发表于 2016-07-28 18:43 |只看该作者
  1. perl -nle 'BEGIN{$r=qr/([\d.]+)/}{@a=/>=$r/g?$1:/$r/g;print "$a[0]\n",m~${r}sq/ft~g;}' f
复制代码
2.8
0.814

论坛徽章:
307
程序设计版块每周发帖之星
日期:2016-04-08 00:41:33操作系统版块每日发帖之星
日期:2015-09-02 06:20:00每日论坛发贴之星
日期:2015-09-02 06:20:00程序设计版块每日发帖之星
日期:2015-09-04 06:20:00每日论坛发贴之星
日期:2015-09-04 06:20:00每周论坛发贴之星
日期:2015-09-06 22:22:00程序设计版块每日发帖之星
日期:2015-09-09 06:20:00程序设计版块每日发帖之星
日期:2015-09-19 06:20:00程序设计版块每日发帖之星
日期:2015-09-20 06:20:00每日论坛发贴之星
日期:2015-09-20 06:20:00程序设计版块每日发帖之星
日期:2015-09-22 06:20:00程序设计版块每日发帖之星
日期:2015-09-24 06:20:00
9 [报告]
发表于 2016-07-28 18:59 |只看该作者
试下,
  1. perl -nle 'BEGIN{$r=qr/([\d.]+)/}{$a[$.]=[/>=$r/g?$1:/$r/g];push(@{$a[$.]},m~${r}sq/ft~g)}END{print "@{$a[$_]}" for 1..$#a}' f
复制代码
2.8 0.814

论坛徽章:
0
10 [报告]
发表于 2016-07-28 19:13 |只看该作者
锡厚:2um(min);锡面积(pnl):0.6sq/ft(13.6%)

在这个字符串中,只有一个数据0.6,为何 ?

还有,哥,麻烦你当一个脚本写,我好移植;
你写一行,我看不大懂,不方便修改!

感谢感谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP