|
vkill
金牌会员
积分 4103
发帖 1744
注册 2006-1-20 来自 甘肃.临泽
状态 离线
|
『楼 主』:
求助 findstr 或 sed 怎么判断变量是否为纯中文字
set/p "var=" name=
我怎么判断%name%是否为纯中文字,例如"张三"可以,而"张3"等类似则不行
[ Last edited by he200377 on 2006-11-2 at 07:42 AM ]
|
|
2006-11-2 07:41 |
|
|
youxi01
高级用户
积分 846
发帖 247
注册 2006-10-27 来自 湖南==》广东
状态 离线
|
|
2006-11-2 08:44 |
|
|
无奈何
荣誉版主
积分 1338
发帖 356
注册 2005-7-15
状态 离线
|
『第
3 楼』:
sed 的没搞出来,来个 GREP 的吧,
echo %name%|grep -P "^[^\x00-\x80]+$" >nul&& ok!通过!
注意:这个表达式全角符号也会通过。
|
☆开始\运行 (WIN+R)☆
%ComSpec% /cset,=何奈无── 。何奈可无是原,事奈无做人奈无&for,/l,%i,in,(22,-1,0)do,@call,set/p= %,:~%i,1%<nul&ping/n 1 127.1>nul
|
|
2006-11-2 09:41 |
|
|
namejm
荣誉版主
batch fan
积分 5226
发帖 1737
注册 2006-3-10 来自 成都
状态 离线
|
『第
4 楼』:
在2F的基础上写个演示代码,在不考虑输入敏感字符的情况下,可以判断输入的是不是数字和字母的混合格式:
@echo off
set var=
set/p var= 请输入字符串:
echo %var% |findstr "^[0-9a-zA-Z]*$">nul && echo 该字符串是纯数字或纯字母或数字和字母的组合!||echo 该字符串含有数字和字母之外的字符
pause>nul
|
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。 |
|
2006-11-2 09:46 |
|
|
amao
中级用户
积分 316
发帖 152
注册 2006-6-18
状态 离线
|
『第
5 楼』:
在这里又学到了grep的一个例子
|
|
2006-11-2 12:42 |
|
|
9527
银牌会员
努力做坏人
积分 1185
发帖 438
注册 2006-8-28 来自 北京
状态 离线
|
『第
6 楼』:
echo 我是谁|findstr "^[^a-zA-Z0-9;:|~`!@#%&{}_+-="',/\\\.\*\[\]\^\$\?]*$"
|
我今后在论坛的目标就是做个超级坏人!!! |
|
2006-11-3 01:38 |
|
|
vkill
金牌会员
积分 4103
发帖 1744
注册 2006-1-20 来自 甘肃.临泽
状态 离线
|
『第
7 楼』:
findstr "^[0-9a-zA-Z] 我在想难道除了字母数字剩下的就是中文吗?
张,三 也算吗?
无奈何斑竹的还没有试,要求是春中文字 ,不包括& | % 等等
|
|
2006-11-3 07:17 |
|
|
vkill
金牌会员
积分 4103
发帖 1744
注册 2006-1-20 来自 甘肃.临泽
状态 离线
|
『第
8 楼』:
Quote: | Originally posted by 无奈何 at 2006-11-2 09:41:
sed 的没搞出来,来个 GREP 的吧,
echo %name%|grep -P "^[^\x00-\x80]+$" >nul&& ok!通过!
注意:这个表达式全角符号也会通过。 |
|
今天再看看,ASII码值应运的真好~我linux的教材上看没有看到-P的参数,看要找点资料看看了
|
|
2006-11-4 07:26 |
|
|
无奈何
荣誉版主
积分 1338
发帖 356
注册 2005-7-15
状态 离线
|
『第
9 楼』:
grep 高版本好像是 2.5 以后加入的参数,-P 参数的作用是用 perl 样式的正则表达式匹配模式。
|
☆开始\运行 (WIN+R)☆
%ComSpec% /cset,=何奈无── 。何奈可无是原,事奈无做人奈无&for,/l,%i,in,(22,-1,0)do,@call,set/p= %,:~%i,1%<nul&ping/n 1 127.1>nul
|
|
2006-11-4 11:56 |
|
|
vkill
金牌会员
积分 4103
发帖 1744
注册 2006-1-20 来自 甘肃.临泽
状态 离线
|
『第
10 楼』:
echo %name%|sed "s/[\x00-\x80]/,/" |findstr ",">nul ||echo ok
|
|
2006-11-9 02:44 |
|
|
3742668
荣誉版主
积分 2013
发帖 718
注册 2006-2-18
状态 离线
|
『第
11 楼』:
@if %var% lss 吖 echo 不是汉字! 据说汉字区位码中一级字库是按拼音来排列的,没有时间测试,有朋友发现bug的吱一声。
|
|
2006-11-9 08:55 |
|