【发布时间】:2019-04-21 23:33:08
【问题描述】:
我正在尝试制作一个当github不落后于golang 时打印的单行脚本。
例如,java is a language used in github 应该匹配,但 golang is a language used in github 不应该匹配。
我试过/(?<!golang).*github/这个表达式,但它不起作用。
echo "golang is a language used in github" |
perl -nle'print /(?<!golang).*github/ ? "match" : "no match"'
这将打印match 而不是no match。
如何在 Perl 中使用“消极的后视”来做到这一点?
(使用 Perl v5.28.1)
【问题讨论】:
-
在您的示例中,模式在位置 0 匹配。位置 0 不是紧跟在
golang之前,它是匹配.*github的字符串的开头 -
是否需要匹配
"java is a language used in github, but golang is not"(github precedes golang)?
标签: perl regex-negation regex-lookarounds