文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>findstr正则表达式接触

findstr正则表达式接触

时间:2010-08-01  来源:vivieu

dos→findstr正则表达式   findstr /?   帮助文档,正则表达式 片断
.  任意字符
*  表示重复次数为任意。注意,不是通配任意个数字符
[] 集合中任意一个
[^]排除集合中任意一个 // 注:os-xp 情况不同。
-  区间
^  行首
$  行尾
\<... 词首
...\> 词尾

示例
1.findstr . file.txt 或 findstr "." file.txt
从文件file.txt中查找任意字符,不包括空字符或空行
  2.findstr .* file.txt 或 findstr ".*" file.txt
任意字符,包括空行和空字符
  3.findstr "[set]" file.txt
集[set]中任意字符
集还可以表示为区间
[0-9]、[a-zA-Z]、[a-fl-z] 等
  4.findstr "M[abc][hig]Y" file.txt
匹配 MahY , MbiY, MahY等
  5. ^和$符号的应用
^ 表示行首,"^step"仅匹配 "step hello world"中的第一个单词
$ 表示行尾,"step$"仅匹配 "hello world step"中最后一个单词
  9.finstr "[^0-9]" file.txt
查找一非数字字符,如果是纯数字的字符串或者行便过滤掉。
例如 2323423423 不匹配,345hh888 匹配。
  10.findstr "[^a-z]" file.txt
同上
例如 sdlfjlkjlksjdklfjlskdf 不匹配,sdfksjdkf99999 匹配
  注:附录 os-xp findstr测试   11.*号的作用
前面已经说过了 ".*"表示搜索的条件是任意字符,*号在findstr正则表达式中的作用不是任何字符,而是表示左侧字符或者表达式的重复次数为零次或者多次。
  12.findstr "^[0-9]*$" file.txt
这个是匹配找到的纯数字,例如 234234234234,如果是2133234kkjl234就被过滤掉了。
Findstr "^[a-z]*$" file.txt
这个是匹配找到的纯字母,例如 sdfsdfsdfsdf,如果是213sldjfkljsdlk就被过滤掉了
如果在搜索条件里没有*号,也就是说不重复左侧的搜索条件,也就是[0-9] [a-z]那只能匹配字符串的第一个字符也只有这一个字符,因为有行首和行尾的限制,"^[0-9]$"第一个字符如果是数字就匹配,如果不是就过滤掉,如果字符串是 9 就匹配,如果是98或者9j之类的就不可以了。
  13. "\<…\>"这个表达式的作用
这个表示精确查找一个字符串,\<sss 表示字的开始位置,sss\>表示字的结束位置
echo hello world computer|findstr "\<computer\>"
精确查找单词,成功
echo hello worldcomputer|findstr "\<computer\>"
精确查找单词,失败
echo hello worldcomputer|findstr ".*computer\>"
词尾匹配,成功
        附录 os-xp findstr测试   C:\>echo ba | findstr "[^ab]"
ba
C:\>echo ba | findstr "[^ab]"
ba
C:\>echo ba| findstr "[^ab]"   结论: XP上findstr的正则表达式 [^abc] 表示排除整行内容(含空格)为abc的行。 注意,这里不是指 “行中不包含集合[abc]中任意字符”。    
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载