- 帖子
- 11
- 积分
- 192
- 技术
- 0
- 捐助
- 0
- 注册时间
- 2008-12-21
|
[文本处理] 【已结】关于findstr正则表达式 * 的疑问
11.*号的作用
前面已经说过了 ".*"表示搜索的条件是任意字符,*号在正则表达式中的作用不是任何字符,而是表示左侧字符或者表达式的重复次数,*号表示重复的次数为零次或者多次。
====================
12.findstr "^[0-9]*$" 2.txt
这个是匹配找到的纯数字,例如 234234234234,如果是2133234kkjl234就被过滤掉了。
Findstr "^[a-z]*$" 2.txt
这个是匹配找到的纯字母,例如 sdfsdfsdfsdf,如果是213sldjfkljsdlk就被过滤掉了
如果在搜索条件里没有*号,也就是说不重复左侧的搜索条件,也就是[0-9] [a-z]那只能匹配字符串的第一个字符也只有这一个字符,因为有行首和行尾的限制,"^[0-9]$"第一个字符如果是数字就匹配,如果不是就过滤掉,如果字符串是 9 就匹配,如果是98或者9j之类的就不可以了。
原贴:http://bbs.bathome.net/viewthread.php?tid=24&highlight=findstr
看了老半天了,还是看不懂.自己也实验了,就是搞不懂.
"^[0-9]*$"和"^[a-z]*$"到底不同处在哪?
cmd帮助是这样说的:
重复:以前字符或类别出现零或零次以上
那就是说,*这个符号有一个相当于语法里&的作用咯?
"^[0-9]*$"这里就是先用^[0-9]搜索.再用[0-9]$搜索??
或者意思是说"^[0-9]*$"匹配的行要同时满足^和$的要求? |
|