linux grep with perl regex greedy 不起作用
linux grep with perl regex greedy not work
我在 linux 服务器上的 perl 版本是:
This is perl 5, version 16, subversion 3 (v5.16.3) built for x86_64-linux-thread-multi
我有一个测试如下。
echo "mac:abcdefg1234" | grep -Po "(?<=mac:).*(?=\d+)"
结果是abcdefg123
。
但是贪心匹配没有work.The我想要的结果是abcdefg
。
如何获取 "mac:" 和 "digital" 之间的内容(尽可能多)
(?<=mac:)[^\d]*(?=\d+)
这就是中间的内容。
[^\d]*
表示所有长度>=0的非数字。在 [
后键入 ^
否定字符 class。结果是字符 class 匹配任何不在字符 class 中的字符。它还匹配(不可见的)换行符。
我在 linux 服务器上的 perl 版本是:
This is perl 5, version 16, subversion 3 (v5.16.3) built for x86_64-linux-thread-multi
我有一个测试如下。
echo "mac:abcdefg1234" | grep -Po "(?<=mac:).*(?=\d+)"
结果是abcdefg123
。
但是贪心匹配没有work.The我想要的结果是abcdefg
。
如何获取 "mac:" 和 "digital" 之间的内容(尽可能多)
(?<=mac:)[^\d]*(?=\d+)
这就是中间的内容。
[^\d]*
表示所有长度>=0的非数字。在 [
后键入 ^
否定字符 class。结果是字符 class 匹配任何不在字符 class 中的字符。它还匹配(不可见的)换行符。