【问题标题】:non-greedy to left regexp非贪心左正则表达式
【发布时间】:2015-01-15 14:21:42
【问题描述】:
echo LOLbbbbbbLOLccccccSEXddddddLOLeeeeeeLOL|grep -oP 'LOL.*?SEX.*?LOL'

输出 LOLbbbbbbLOLccccccSEXddddddLOL

我期望的是 LOLccccccSEXddddddLOL - “SEX” 被最近的“LOL”包围

如何通过正则表达式(grep 或 perl)实现这一点?

【问题讨论】:

  • 你使用什么 grep 版本?对我来说 echo LOLbbbbbbLOLccccccSEXddddddLOLeeeeeeLOL|grep -oP 'lol.*?SEX.*?lol' 不会返回任何东西。
  • @ArkadiuszDrabczyk 这一定是因为它对您区分大小写,而对 xoid 不区分大小写。
  • 对不起,伙计们。我修复了 Q 中的案例问题

标签: regex pcre non-greedy


【解决方案1】:

试试这个:

$ echo LOLbbbbbbLOLccccccSEXddddddLOLeeeeeeLOL | grep -P --color "LOL[a-z]+SEX[a-z]+LOL"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多