O2O网站开发工程师,中国观鸟记录的网站架构,建站公司 知乎 discuz,seo小白入门教学在编写程序时#xff0c;或者编写网页时#xff0c;在处理一些不固定的字符时#xff0c;我们通常会使用形如#xff1a;. * ?等字符#xff0c;而我们就把这称作是正则表达式#xff0c;尤其是我们在浏览一些网站进行用户注册时#xff0c;通常会见到对我们的帐号、密… 在编写程序时或者编写网页时在处理一些不固定的字符时我们通常会使用形如. * ?等字符而我们就把这称作是正则表达式尤其是我们在浏览一些网站进行用户注册时通常会见到对我们的帐号、密码、邮箱等格式或复杂程度进行限制而这一切都是正则表达式的功劳而正则表达式在不同的环境中也是具有不同的作用的。 在正则表达式中我们一般是将这些组成正则表达式的字符称作“元字符”。 在Linux下正则表达式 ^PATTERN 行首锚定符以PATTERN为行首开始 PATTERN$ 行尾锚定符以PATTERN为行尾结束 \PATTERN 词首锚定符以PATTERN为词首开始的单词 PATTERN\ 词尾锚定符以PATTERN为词尾结束的单词 . 匹配任意单个非空字符 * 匹配此前的字符0到任意次 .* 匹配此前长度的任意字符当正则表达式中包含能接受重复的限定符时通 常的行为是【在使整个表达式能得到匹配的前提下】匹配尽可能多的字符我们将其称之为贪婪模式 ? 匹配此前的字符0次或1次 \{m,n\} 匹配之前字符至少m次至少n次注匹配至少2次多则不限\{2,\} 匹配最多5次少则不限\{0,5\} 匹配5次\{5\} [] 匹配指定范围内的任意单个字符 [^] 匹配指定范围外的任意单个字符 \(\) 标识引用和分组做引用时在后面要使用括号中的字符时只需输入\n n标识次表达式中的从左至右的第几个括号做分组作用时是指括号中的为一组执行共同的动作 而在Linux中我们通常使用的文本查找工具grep、egrep、fgrep都是配合正则表达式来使用的 grep基本正则表达式 egrep扩展正则表达式 fgrep快速搜索全部的字符。 grep [option] file --colorauto|always 指定匹配到的字符所显示的颜色 -E 支持扩展正则表达式即grep -E egrep -v 取反 -i 忽略大小写 -r 搜索多个文件即递归搜索 -B NUMBER 显示搜索到的行的上NUMBER行 -A NUMBER 显示搜索到的行的下NUMBER行 -C NUMBER 显示搜索到的行的上下NUMBER行 -o 只显示匹配到的内容本身并非所在的行 egrep 扩展正则表达式扩展正则表达式对标准正则表达式的某些元字符进行了简化如 \{m,n\} ---- {m,n} \(\) ---- () 添加了 | 表示或的意思 匹配之前字符1次或任意次 例子 1、搜索以redhat为行开始的行在/etc/passwd中 #grep --colorauto ^redhat /etc/passwd 2、搜索以 为行结尾的行在/etc/passwd中 #grep --colorauto :$ /etc/passwd 3、搜索不是以字母r开头的单词在/etc/passwd中 #grep --colorauto -v -o \r /etc/passwd 4、搜索以字母d结尾的单词在/etc/passwd中 #grep --colorauto d\ /etc/passwd 5、搜索形如XXX.XXX.XXX.XXX的行X只为数字在/tmp/test/a.txt中 #grep -- colorauto \([[:digit:]]\{3\}\.\)\{3\}[[:digit:]]\{3\} /tmp/test/a.txt 6、搜索以其为附加组多于两个用户的组 #grep --colorauto \(,.*\)\{2\}$ /etc/group 7、搜索密码永不过期的用户 #grep --colorauto \(.*\)\{4\}99999 /etc/shadow 相信你看过后对正则表达式和grep已经能够熟练使用了 转载于:https://blog.51cto.com/grass51/774305