[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 【已解决】批处理如何识别并提取文本中存在的11位手机号?

本帖最后由 taofan712 于 2017-2-10 20:59 编辑
  1. 寒蝉凄13切,对长亭晚,13311111111骤雨初歇。
  2. 都门帐饮无绪,留恋处舟催发。执手相看[color=Red]1355555
  3. 7777[/color]泪眼,竟无语凝噎。念15去135去千里烟波,
  4. 暮霭沉1314沉楚天阔。  多情自古12580伤离别,
  5. 更那堪冷落清秋节。今宵酒醒何处?136杨柳岸晓风10010残月。
  6. 1372222此444去经年,应是良辰好景虚设。
  7. 便纵10086有千种风情,更与何人说? 13788889999
复制代码
——————————————————
假设有类似文本,请问如何批处理自动识别其中的手机号码,并提取出来?
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

回复 2# B魔方大人

以中国手机号为标准 ,固定11位。因为需要从各个杂乱文本中提取手机号码,组成www.bathome.com\sub\13344445555这样的网址,所以我想先把它取出来单独保存。
另外 13555557777 这个号码你没提取到。

TOP

回复 4# 523066680
谢谢版主,请问有批处理方案吗?
新人刚开始学【绝非伸手党】,有个大概思路:
  1. @echo off
  2. echo on
  3. setlocal enabledelayedexpansion
  4. for %%a in (134 135 136 137 138 139 150 151 152 158 159 157 182 187 188 147  130 131 132 155 156  185 186   133 153  180 189) do (set 3a=%%a
  5. for /f "delims=!3a! tokens=1*" %%b  in ('type a.txt^|find "!3a!"') do (
  6. rem 我这个只能查到第一个出现数字的地方,这个delims和tokens要怎么写才能把每一行的所有数字都查到呢
  7. set 8b=%%c
  8. set "8b=!8b:~0,8!"
  9. rem 这里判断变量8b是否全部是数字 if "!8b!"==(全部是数字)
  10. echo,!3a!!8b!>>phnum.txt
  11. )
  12. )
  13. pause>nul
复制代码

TOP

回复 6# 老刘1号
谢谢老刘
回复 7# B魔方大人
谢谢魔方大人

TOP

本帖最后由 taofan712 于 2017-2-10 13:51 编辑

回复 8# zz100001

非常感谢,你的代码完美的解决了我的问题。

有点遗憾,我10年就注册了批处理之家,中途都是偶尔看看,到现在才真正开始对批处理产生浓厚兴趣。
提这个问题更直接的原因也是想从中学习批处理而不是通过其他语言手段得到这个问题的答案。
所以真的特别感谢你写这么长的代码回答我的问题。
谢谢。
——————————
看到现在,终于看懂了,逐字找出连续11位数字,再对比前3位。

TOP

本帖最后由 taofan712 于 2017-2-10 13:49 编辑

回复 11# 回家路上

谢谢,你冷酷的言语下有火热的心啊,哈哈。我把你和zz100001的代码都保存下来慢慢看。没看完之前不提新问题了。



看了一天多了,到现在才看明白过程是怎样的再次感谢。另外,从这里的代码我突然明白“从上到下一直写到底更适合菜鸟阅读”这句话是错误的……

TOP

返回列表