正则表达式该上场了。先让我们来看一个例子。就拿上一节所提到的需求为例:如何查找出所有以数字命名的文件,如“123.txt”,“222.txt”,而将类似“aa1.txt”这些包含字母的文件过滤掉。
正则表达式的写法如下:
\d+\.txt
或许你看不懂前面的\d+\.是什么意思,但后面的txt就一目了然了。正则表达式就是用来匹配并查找出目标字符串的,这后面的txt就是原封不动的将目标字符串的后半段写了上去。在很多编程语言中,反斜杠"\"是用来转义字符的。如"\r\n"就代表了一个换行符,"\t"代表一个tab。在正则表达式中,这个反斜杠也有类似的作用。利用"\"可以匹配出各种各样的字符来。下面就来解释一下这个正则表达式所表达的意思是什么。
在正则表达式中,\d用来匹配一个数字,就是0-9这九种字符。\d后面跟着一个+,就说明可以匹配一次或多次数字。也就是说,\d可以匹配到"1"、"3"等这些字符串,而\d+ 就可以匹配到 "12","2235","3","332"等这些字符串了。与"+"有类似功能的还有"*"与"?"。
不同的是,"*"是匹配0次或多次,"?"则用来匹配0次或一次。
许多语言都有一些保留字符,如c#有private、static等。正则表达式也不例外,如"."、"?"等字符,既然这些都是属于有特殊意义的字符,那么如果要匹配出含有这些字符的字符串,那要怎么做呢?方法就是在这些字符的前面加上一个"\"。
有了上述的解释,相信聪明的读者,就能轻松的看懂"\d+\.txt"这个正则表达式所要表达的意思了。
好了,本节只是举了个简单的例子,来告诉大家使用正则表达式的场合及特点。要想灵活地运用正则表达式来处理各种需要匹配的情况,还请列位继续往下看。