加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式入门

发布时间:2020-12-13 21:57:10 所属栏目:百科 来源:网络整理
导读:书籍:精通正则表达式 第一单元 「」内为正则,此符号不需写,是为了观看 。代表空格 检索文本文件 egrep ^ 代表一行的开始 $ 代表一行的结束 在理解「^cat$」时要理解为以c作为一行的开头,接着是a,接着是t的文本 192.168. [0-2][0-9][0-9]. 字符组: 字符

书籍:精通正则表达式 第一单元

「」内为正则,此符号不需写,是为了观看 。代表空格

检索文本文件 egrep ^ 代表一行的开始 $ 代表一行的结束 在理解「^cat$」时要理解为以c作为一行的开头,接着是a,接着是t的文本 192.168. [0-2][0-9][0-9].

字符组: 字符组外的理解要理解为“接下来是”,字符组内理解为“或” 「sep[ea]r[ea]te」[]内的理解为或的概念 「<H[123456]>」理解为匹配

等,在搜索HTML Header时非常有用 「<H[123456]>」等于「<H[1-6]>」 「[0123456789abcdefABCEEF]」等于「[0-9a-fA-F]」 -是连字符,在字符组里是连字符,在字符组开头代表普通符号 「[^1-6]」匹配除了1-6以外的任何字符(在字符组内,而且必须是紧接在字符组的第一个方括号后,代表元字符,排除的意思)

在egrep里q[^u]找不到Iraq单词(Iraq后面回车换行)。[^u]表示除了u,每行结尾通常有换行符,但是egrep在检查正则表达式前都把这些换行符去掉了,所以匹配不了。

「.」匹配任意字符 「03.17.76」可以搜索03/17/76、03-17-76、03.17.76 当然也可以匹配03417576,找的时候看自己对文本检索需要达到这样的精度。 精确的匹配正则「03[-/.]17[-/.]76」连字符必须是在[之后,不然是表示范围的意思。

「|」多选,或的意思。「A正则表达式|B正则表达式」能同时匹配其中的任意一个正则表达式。 「gr[ea]y」可以写成「grey|gray」或者「gr(e|a)y」 ()起到限制的作用。 -i 参数表示忽略大小写。

单词分界符「<」「>」。比如「<cat>」匹配单词cat而不会把包含cat这三个字符的其他单词找出来。(某些版本的egrep可能不支持)

可选项元素: 「?」?代表可选项。「colou?r」表示u这个字母可以有也可以没有,不是成功匹配的必要元素。 「+」前面元素出现一次或者多次,无法进行任何一次匹配会报错。 「*」前面元素出现任意次或者不出现

括号的第二个用处,1表示前面括号内的内容。多个括号时用23 理解「<([a-zA-Z]+)。+1>」。在文本查找里查找任意单词连续出现两次的情况。

查找匹配的字符本身是元字符的话,用神奇的转义符「」 要查找「eta.att.com」时,因为.也是元字符,所以要查找「eta.att.com」。在字符组内无效。

{1,5}区间,定义前面元素出现的次数。

匹配双引号内的字符串:「''[^'']*''」 匹配美元金额(可能包含小数):「$[0-9]+(.[0-9][0-9])?」但是这个还不能匹配其他很多形式,比如$.49,所以还得想其他方法。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读