echo "lineabc" | grep -oP '\w+?(?!abc\b)'
l
i
n
ea
b
c
为什么结果中包含这么多行?
结果呢?
'\w+?(?!abc\b)'
在这里意味着什么?
答案 0 :(得分:0)
您使用了grep的-o
选项,如果您阅读手册页以了解此选项的作用,您就会明白为什么有多行'输出:
-o, --only-matching
Print only the matched (non-empty) parts of a matching
line, with each such part on a separate output line.
答案 1 :(得分:-1)
/ \ W +?(?ABC \ B)/克
\ w +?匹配任何单词字符(等于[a-zA-Z0-9 _])
+?量词 - 在一次和无限次之间匹配,尽可能少,根据需要扩展(懒惰)
否定前瞻(?!abc \ b)断言下面的正则表达式不匹配 abc字面匹配字符abc(区分大小写)
\ b在单词边界处断言位置(^ \ w | \ w $ | \ W \ w | \ w \ W)
全局模式标记 g修饰符:全局。所有比赛(首场比赛后不返回)