
1 raaaaaar 2021 年 7 月 5 日 via Android 分组捕获吗?我上午才遇到这个问题,P 选项是扩展语法才支持的,可以试下 sed 或者 cut,直接搜 grep 分组捕获就有答案 |
3 AoEiuV020 2021 年 7 月 5 日 做不到吧感觉,正则都是从左往右匹配,越前面的越先开始匹配,这个优先级是高于贪婪懒惰的,第一个 a 一定是最优先参与匹配的,不管后面有没有 a 满足条件, |
4 Fu4ng OP echo "axxabcaca" | awk '/a.*?c.*?a/{ print $0 } 也不行。 |
5 junyee 2021 年 7 月 5 日 只能 grep -P 了吧。 ``` echo "axxabcaca" | grep -oe "a[^a]*c[^a]*a" ``` |
6 lululau 2021 年 7 月 5 日 brew install grep 或者 brew install the_silver_searcher |
7 no1xsyzy 2021 年 7 月 6 日 正则是最左开始扫描, -P 应该也是解决不了的 你要全局最短应当是反复去掉第一个字符重新扫描一遍,在所有的结果中找到最短的。更优化是每次从上次命中的第一个字符的后一个字符开始重新扫描。 |
8 RexG 2021 年 7 月 6 日 最先开始的匹配拥有最高的优先权 匹配规则优先级更高 |
9 ooops 2021 年 7 月 6 日 via iPhone 你可以把所有匹配的拿出来在筛最短的啊 为什么非要正则一步拿出来 |