什么是正则表达式?正则表达式是用于描述字符排列和匹配模式的一种语法规则。在很多程序设计语言中都支持利用正则表达式来进行字符串的操作,不同语言中的正则表达式略有不同,但是毕竟都是正则,其本质思想都是一致的,当我们掌握了shell中的正则后,再去看python或者perl里面的正则表达式时,会发现其实都是一样的东东。
在shell的一些命令中,有些并不支持正则表达式,但是它们支持Linux里面的通配符,那么通配符又是什么东东呢,它跟正则表达式又有什么关系?
正则表达式用来在文件中匹配符合条件的字符串,正则是包含匹配。grep、awk、sed等命令都支持正则表达式。通配符用来匹配符合条件的文件名,通配符是完全匹配。ls、find、cp这些命令不支持正则表达式,所以只能使用shell自己的通配符来进行匹配了。
通配符主要是下面三个:
?
?
?
首先,正则表达式是用来匹配文件中文本的字符串,而通配符是用来匹配符合条件的文件名;其次正则表达式是包含匹配,只要包含正则中的字符串,就匹配,而通配符是完全匹配,也就是说,必须要与条件中的字符串一模一样才会匹配。?
说了这么多,其实正则表达式主要用于字符串的模式分割、匹配、查找及替换操作,下面来关注一下正则表达式基本的元字符和它的作用。?
?
下面举几个个简单的列子:
(1)匹配日期格式YYYY-MM-DD "[0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\}"?
(2)匹配IP地址XXX.XXX.XXX ? ?"[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}"?
(3)匹配腾讯QQ号码 ?"[1-9][0-9]\{4,9\}"