带有perl regex贪婪的Linux grep不起作用

时间:2018-09-06 08:32:33

标签: regex-lookarounds regex-greedy

我在Linux服务器上的perl版本是:

  

这是为x86_64-linux-thread-multi构建的perl 5,版本16,版本3(v5.16.3)

我进行了如下测试。

UIModalPresentationNone

结果为echo "mac:abcdefg1234" | grep -Po "(?<=mac:).*(?=\d+)"

但是贪婪的匹配不起作用。我想要的结果是abcdefg123。 如何获得“ mac:”和“数字”之间的内容(允许的数量)

1 个答案:

答案 0 :(得分:0)

(?<=mac:)[^\d]*(?=\d+)即是介于两者之间的内容。

[^\d]*表示长度> = 0的所有非数字。在^之后键入[会否定字符类。结果是,字符类与不在字符类中的任何字符匹配。它还匹配(不可见的)换行符。