号称“天书”的正则表达式,要这么来讲,我小学三年级已经满分了( 二 )
- * 匹配前面的条目零次或多次 。
- ? 匹配前面的条目零次或一次 。
- + 匹配前面的条目一次或多次 。
- {n} 与前面的条目正好匹配n次 。
- {n,} 至少匹配前面的条目n次 。
- {,m} 最多匹配前面的条目m次 。
- {n,m} 匹配前面的条目n到m次 。
grep 's*right'
下面是更高级的模式 , 它匹配以大写字母开头、以句点或逗号结束的所有行 。.*正则表达式匹配任意数量的任意字符:
grep -E '^[A-Z].*[.,]$' file.txt
【号称“天书”的正则表达式,要这么来讲,我小学三年级已经满分了】?(问号)字符使前面的项目成为可选的 , 并且它只能匹配一次 。 下面的内容将同时匹配“bight”和“right” 。?字符使用反斜杠进行转义 , 因为我们使用的是基本正则表达式:
grep 'b\?right' file.txt
下面是使用扩展正则表达式的相同正则表达式:grep -E 'b?right' file.txt
+(加号)字符与前面的项目匹配一次或多次 。 下面将匹配“sright”和“ssright” , 但不匹配“right”:grep -E 's+right' file.txt
大括号字符{}允许你指定匹配必须出现的确切数量、上限或下限或范围 。以下内容匹配3到9位之间的所有整数:
grep -E '[[:digit:]]{3,9}' file.txt
交替术语交替是一个简单的“或” 。 交替运算符|(竖线)允许你指定不同可能的匹配项 , 这些匹配项可以是文字字符串或表达式集 。 此运算符在所有正则表达式运算符中优先级最低 。在下面的示例中 , 我们将在Nginx日志错误文件中搜索单词fatal、error和critical的所有匹配项:
grep 'fatal\|error\|critical' /var/log/nginx/error.log
如果使用扩展正则表达式 , 则不应转义运算符| , 如下所示:grep -E 'fatal|error|critical' /var/log/nginx/error.log
分组分组是正则表达式的一项功能 , 它允许将模式分组在一起 , 并将它们作为一个项目引用 。 组是使用括号()创建的 。 使用基本正则表达式时 , 括号必须用反斜杠(\)转义 。下面的示例同时匹配“fearless”和“less” 。 ?量词使(fear)组成为可选的:
grep -E '(fear)?less' file.txt
特殊转义符GNU grep包括几个元字符 , 这些元字符由一个反斜杠后跟一个常规字符组成 。下表展示了一些最常见的特殊反斜杠表达式:
- \b 匹配单词边界 。
- \< 匹配单词开头的空字符串 。
- \> 匹配单词末尾的空字符串 。
- \w 匹配一个单词 。
- \s 匹配空格 。
grep '\b[ao]bject\b' file.txt
写在最后正则表达式用于文本编辑器、编程语言和命令行工具 , 如grep、sed和awk 。在搜索文本文件、编写脚本或筛选命令输出时 , 了解如何构造正则表达式非常有用 。
- 空调|让格力、海尔都担忧,中国取暖“新潮物”强势来袭,空调将成闲置品?
- 同比|亚马逊公布“剁手节”创纪录战绩:第三方卖家全球销售额超48亿美元 同比大增60%
- 闲鱼|电诉宝:“闲鱼”网络欺诈成用户投诉热点 Q3获“不建议下单”评级
- 人民币|天猫国际新增“服务大类”,知舟集团提醒入驻这些类目的要注意
- 产业|前瞻生鲜电商产业全球周报第67期:发力社区团购!京东内部筹划“京东优选”
- 技术|做“视频”绿厂是专业的,这项技术获人民日报评论点赞
- 互联网|苏宁跳出“零售商”重组互联网平台业务 融资60亿只是第一步
- 面临|“熟悉的陌生人”不该被边缘化
- 研发|闽企制伞有“功夫”项目入选国家重点研发计划
- 逛逛|淘宝内容化再升级:“买家秀”变身“逛逛”试图冲破算法局限