gpt4 book ai didi

.net - 匹配不以 [ 且不以 ] 结尾的行的正则表达式(ini header )

转载 作者:行者123 更新时间:2023-12-02 22:59:11 25 4
gpt4 key购买 nike

$test = @('test', '[test]', '[te]st', 'te[st]')

以下是我所能得到的。它只匹配“测试”。

$test | where-object {$_ -match '^(?!\[).+(?<!\])$'}

'test'、'[te]st' 和 'te[st]' 应该匹配。谢谢。

最佳答案

问题

[te]st 中,初始否定先行失败。

te[st] 中,最终的否定回顾失败。


解决方案

我们需要使用交流发电机 | 来确保一个或另一个场景有效..如果两个环视都失败了,那么我们将无法匹配:

^         (?# match the beginning of the string)
(?: (?# start non-capturing group)
(?!\[) (?# negative lookahead for [)
.+ (?# match 1+ characters)
| (?# OR)
.+ (?# match 1+ characters)
(?<!\]) (?# negative lookbehind for ])
) (?# end non-capturing group)
$ (?# match the end of the string)

Demo


注意:我将交替放在非捕获组中,这样我就不需要包含 anchor ^$每个可能的陈述。

关于.net - 匹配不以 [ 且不以 ] 结尾的行的正则表达式(ini header ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23902255/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com