我在regex101上创建了一个正常表达式,它按预期工作,但问题是一个部分在Powershell中显然无效; \K
。
基本上我正在查找字符串的实例,并在字符串的实例之后返回整个单词。所以这是一个例子:
\btest\s+\K\S+
这会查找单词test
的每个示例,并在其后面返回单词。我确实尝试过使用Lookaheads和Lookbehinds进行实验,虽然其中一些确实有用,但他们仍然要么返回test
或其他不必要的字符。
有没有办法在powershell中复制\K
?或者甚至更好,任何允许PowerShell使用\K
的附加组件?
答案 0 :(得分:7)
What about something like this: (?<=\btest\b)\s+(\w+)\S+
test
的正面观察,其次是您正在寻找的其他内容,以及后续单词的捕获组。
PowerShell使用.Net RegEx引擎和it doesn't support \K
as you know it(它用于引用.Net中的命名捕获组)。你不能改变它。
你可能会使用与.Net兼容的正则表达式的第三方实现,但似乎不太可能存在这样的事情,因为一般来说.Net有一个非常好的和功能齐全的引擎。