花括号允许为可重复的正则表达式指定一个上限。这通常称为间隔(interval)。
可以用两种格式来指定区间。

  • m:正则表达式准确出现m次。
  • m, n:正则表达式至少出现m次,至多n次。

这个特性可以精确调整字符或字符集在模式中具体出现的次数:

$ echo "bt" | gawk --re-interval '/be{1}t/{print $0}'
$
$ echo "bet" | gawk --re-interval '/be{1}t/{print $0}'
bet
$ echo "beet" | gawk --re-interval '/be{1}t/{print $0}'
$

通过指定间隔为1,限定了该字符在匹配模式的字符串中出现的次数。如果该字符出现多次,模式匹配就不成立。
很多时候,同时指定下限和上限也很方便。

$ echo "bt" | gawk --re-interval '/be{1,2}t/{print $0}'
$
$ echo "bet" | gawk --re-interval '/be{1,2}t/{print $0}'
bet
$ echo "beet" | gawk --re-interval '/be{1,2}t/{print $0}'
beet
$ echo "beeet" | gawk --re-interval '/be{1,2}t/{print $0}'
$

在这个例子中,字符e可以出现1次或2次,这样模式就能匹配;否则,模式无法匹配。
间隔模式匹配同样适用于字符组。

$ echo "bt" | gawk --re-interval '/b[ae]{1,2}t/{print $0}'
$
$ echo "bat" | gawk --re-interval '/b[ae]{1,2}t/{print $0}'
bat
$ echo "bet" | gawk --re-interval '/b[ae]{1,2}t/{print $0}'
bet
$ echo "beat" | gawk --re-interval '/b[ae]{1,2}t/{print $0}'
beat
$ echo "beet" | gawk --re-interval '/b[ae]{1,2}t/{print $0}'
beet
$ echo "beeat" | gawk --re-interval '/b[ae]{1,2}t/{print $0}'
$
$ echo "baeet" | gawk --re-interval '/b[ae]{1,2}t/{print $0}'
$
$ echo "baeaet" | gawk --re-interval '/b[ae]{1,2}t/{print $0}'
$

如果字母a或e在文本模式中只出现了1~2次,则正则表达式模式匹配;否则,模式匹配失败。

扩展正则表达式之花括号相关推荐

  1. 正则表达式(匹配第一个花括号)

    学习正则,工作中使用正则让我对"^"有了新的认知: 正则中^匹配输入字符串的开始位置,除非在[]方括号表达式中使用,此时表示不接受该字符集合. 废话不多说,直接看栗子吧, 如下图所 ...

  2. shell脚本中的花括号扩展

    shell脚本中的花括号扩展 在shell脚本中可以在花括号中使用一组以逗号分隔的字符串或者字符串序列来进行字符串扩展,最终输出的结果为以空格分隔的字符串(整数也可) [root@mao_aliyun ...

  3. python正则表达式花括号_python正则表达式(+ {})(二)

    加号-重复匹配多次 + 表示匹配前面的子表达式一次或多次,不包括0次 比如,还是上面的例子,你要从文本中,选择每行逗号后面的字符串内容,包括逗号本身 但是,添加一个条件,如果逗号后面没有内容,就不要选 ...

  4. shell中的括号(小括号,中括号,大括号/花括号)

    一.小括号,园括号() 1.单小括号 () ①命令组.括号中的命令将会新开一个子shell顺序执行,所以括号中的变量不能够被脚本余下的部分使用.括号中多个命令之间用分号隔开,最后一个命令可以没有分号, ...

  5. Linux扩展正则表达式

    1. 扩展正则表达式 1.1 +(加号) + 表示前一个字符出现1次或1次以上 1.1.1 理解+ 要求:取出文件内容连续出现的小写字母 [root@oldboyedu50-lnb /oldboy]# ...

  6. 扩展正则表达式及应用

    第1章 扩展正则表达式 1.1  + 前一个字符连续出现了1次或1次以上 egrep  "0+" oldboy.txt  1次或1次以上 >=1 egrep  "0 ...

  7. 什么时候需要在外壳变量周围花括号?

    在Shell脚本中,何时在扩展变量时使用{} ? 例如,我看到了以下内容: var=10 # Declare variableecho "${var}" # One use of ...

  8. shell脚本中的几个括号总结(小括号/大括号/花括号)

    [转载]shell脚本中的几个括号总结(小括号/大括号/花括号) (2011-10-08 21:23:34) 转载▼ 标签: 杂谈 分类: linux shell脚本中的几个括号总结(小括号/大括号/ ...

  9. 正则表达式与扩展正则表达式区别

    最近在学习正则表达式时,遇到了一些问题,究其原因是正则表达式与扩展正则表达式的区别没有弄清楚 正则表达式与扩展正则表达式类似,只是扩展正则表达式表达更加简单正则表达式需要打 \ 转义字符 来表示某些字 ...

最新文章

  1. 什么??听说Python要凉!
  2. 被「卡脖子」的尖端技术该如何前行?刘明张亚勤等院士大咖为你解惑 | CNCC2020...
  3. java 线程中断(转)
  4. Ajax.net实现loading登陆的效果
  5. 题库练习3(质因子、取近似值、合并表记录)
  6. gcc 删除elf_ELF文件格式解析器 原理 + 代码
  7. Linux 内核通知链和例程代码
  8. 如何利用小熊派获取MPU6050六轴原始数据
  9. 【接口自动化测试】使用Fitness实现接口自动化测试
  10. 微信小程序单指拖拽和双指缩放旋转
  11. javascript笔记——js面试问题
  12. 嵌入式工具——smartmontools
  13. C++ 类的隐式转换之基本数据类型
  14. excel趋势线公式导出_除了类 Excel, SpreadJS 表格控件还能为系统开发带来什么价值?...
  15. 中标麒麟V6版本32位以及64位下载地址
  16. 《富爸爸穷爸爸 》 读书笔记
  17. RabbitMq高级惰性列队
  18. 联想拯救者 独显模式下亮度无法调节 解决方法记录
  19. 前端开发面试问题及答案收录
  20. Linux用户安全及Linux PAM验证机制

热门文章

  1. 常用的ipdb调试命令
  2. python cmdb 马哥_python相关cmdb系统
  3. python中的语句是什么意思_python语句意思
  4. web应用程序jsp_创建国际化的JSP应用程序
  5. 数据结构计算机专业教学计划编制,数据结构与算法课程设计报告--教学计划编制...
  6. 页游《火影忍者》角色和背景遮挡半透明效果的实现
  7. GTID主从复制 MHA高可用 binlogserver实时备份 Atlas中间件读写分离
  8. 05-02JavaScript流程控制---循环语句
  9. WebStrom、IDEA、PhpStrom等编辑器输入的中文显示不全且是繁体的解决办法
  10. 算法设计与分析入门篇----贪心法3