本帖最后由 zm900612 于 2011-6-14 16:26 编辑
12# 601997526
^代表匹配句首,与/b作用相同,只是^是匹配单条关键词而/b是匹配所有关键词。所以findstr /rc:"^\\ \\"等于findstr /bc:"\ \"
而\<代表匹配词首,而什么叫做词呢,按我的理解,它是两个分隔符之间的字符串,这个分隔符可以是除了数字和大小写之外的所有单字节字符,按照findstr中字符的实际大小来排列,是指字符顺序中从空格到>之间的字符(剩下的单字节字符都是数字和字母),所以findstr /rc:"\<\\ \\"等于findstr /rc:"[ ->]*\\ \\"。不过按这个观点来看,\<应该存在误把汉字当做分隔符的bug(因为findstr是以匹配字节的方式来进行搜索,所以应该会把ansi中的宽字节当成两个字节来匹配)。
^和\<的区别在这题中没有体现出来,但是举一个简单的例子可能就可以讲清楚了:- @prompt 命令:
- findstr /rc:"^/rc" %~nx0
- pause>nul
- findstr /brc:"/rc" %~nx0
- pause>nul
- findstr /rc:"\</rc" %~nx0
- pause>nul
- findstr /rc:"[ ->]*/rc" %~nx0
- pause>nul
复制代码
|