Board logo

标题: [文本处理] 批处理如何判断字符串是否为纯数字? [打印本页]

作者: apython    时间: 2016-4-10 14:26     标题: 批处理如何判断字符串是否为纯数字?

本帖最后由 pcl_test 于 2016-4-10 14:39 编辑

例如a.txt--------文本如下
  1. 越强大越自律
  2. 44525
  3. 明眸゜ Sunshine
  4. 447384
  5. 448120
  6. ZzzZzz-
  7. 46426
  8. 古 奈
  9. 4762
  10. self
  11. 49495
  12. 4975100
  13. 人定胜天
  14. 501709
  15. 避风港
  16. 5264
  17. .
  18. 527
  19. Mr 张
  20. 535555
  21. 萌帝。
  22. 571027
  23. 黄昏.回忆
复制代码
处理之后b.txt-----------如下
  1. 44525
  2. 447384
  3. 448120
  4. 46426
  5. 4762
  6. 4762
  7. ....
复制代码
要求只提取含有数字的行,其中不存在数字汉字同行的情况。
求解。
记得以前有见过此类相比较判断的帖子。
作者: CrLf    时间: 2016-4-10 14:36

本帖最后由 CrLf 于 2016-4-10 15:14 编辑
  1. @findstr /v "[^0-9]" a.txt >b.txt
复制代码

作者: pcl_test    时间: 2016-4-10 14:38

http://www.bathome.net/viewthread.php?tid=33887
http://www.bathome.net/viewthread.php?tid=5119
作者: codegay    时间: 2016-4-10 14:45

本帖最后由 codegay 于 2016-4-10 15:05 编辑

楼主名为a python
  1. """
  2. 2016年4月10日 14:44:09 codegay
  3. """
  4. #方法1,isdigit()
  5. with open("11.txt") as f:
  6.     for r in f:
  7.         if r.strip().isdigit():
  8.             print(r)
  9. #方法2正则
  10. import re
  11. with open("11.txt") as f:
  12.     for r in f:
  13.         if re.match(r"^\d+$",r):
  14.             print(r)
复制代码
向ivor同学学习。
作者: happy886rr    时间: 2016-4-10 14:45

  1. @echo off&findstr /rc:"^ *[0-9][0-9]* *$" test.txt>new.txt
复制代码
回复 1# apython
作者: apython    时间: 2016-4-10 15:31

回复 3# pcl_test


    嗯
作者: /zhqsystem/zhq    时间: 2016-4-10 17:48

回复 1# apython
简易版精确判断,{特殊字符有不确定因素谨慎使用}
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%i in ('type "%~f1"')do (set "#%~nx1=%%i"
  3. for /l %%j in (0,1,8192)do if /i not "!#%~nx1:~%%j,1!"=="" (
  4.   if /i "!#%~nx1:~%%j,1!"=="0" (rem:
  5.   )else if /i "!#%~nx1:~%%j,1!"=="1" (rem:
  6.   )else if /i "!#%~nx1:~%%j,1!"=="2" (rem:
  7.   )else if /i "!#%~nx1:~%%j,1!"=="3" (rem:
  8.   )else if /i "!#%~nx1:~%%j,1!"=="4" (rem:
  9.   )else if /i "!#%~nx1:~%%j,1!"=="5" (rem:
  10.   )else if /i "!#%~nx1:~%%j,1!"=="6" (rem:
  11.   )else if /i "!#%~nx1:~%%j,1!"=="7" (rem:
  12.   )else if /i "!#%~nx1:~%%j,1!"=="8" (rem:
  13.   )else if /i "!#%~nx1:~%%j,1!"=="9" (rem:
  14.   )else (set "#%~nx1="
  15.   )
  16. )
  17. if /i not "!#%~nx1!"=="" echo,!#%~nx1!
  18. )
  19. pause
复制代码





欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2