regex - Bash Regex:搜索最多 3 个连续的元音
问题描述
我正在尝试搜索最多 3 个连续的元音
我试过了
grep -E "([AEIOUaeiou]{3})" gpl3.txt
并得到了结果
我想要的是不要得到你在第一行输出中看到的( aaaaaaaaa )。所有其他输出都是正确的。
任何帮助表示赞赏
解决方案
如果你想避免-P
选项和前瞻,你可以使用类似下面的东西。
grep -iE '(^|[^aeiou])[aeiou]{3}([^aeiou]|$)' gpl3.txt
它只是匹配
- 行首或非元音
- 三个元音
- 非元音或行尾
试运行:
IT070137 ~/tmp $ cat gpl3.txt
aaaaaaaaaaaaaaa
asdaiosd
aa
aaa
aaaa
this is a righteous queue
IT070137 ~/tmp $ grep -E '(^|[^aeiou])[aeiou]{3}([^aeiou]|$)' gpl3.txt
asdaiosd
aaa
this is a righteous queue
推荐阅读
- java - 如何通过 Java 在 ZPL 中打印中文和西里尔字符?
- python - 我的 spark rdd.take() 执行时间过长。我需要它来处理列表中的 11600 个元素
- javascript - Node.js 事件队列、Promises 和 setTimeout()——按什么顺序排列?
- css - MailPoet:我如何固定我的定位?每次我放大和缩小时,一切都不合适。CSS
- html - 使用 [[ngModel]] 时,patchValue 不起作用
- automation - 在 TeamCity 中运行测试时获取 trx 文件未找到错误消息
- postgresql - PostgreSQL where concat 类似于 MySQL
- sql - 如何从此类表中获取每日 PV
- django - Djongo/PyMongo 不断为 Django REST 框架 API 请求创建新的数据库连接
- jquery - 构建 Vue 应用程序并使用 Bootstrap 而不包含在构建中