我有一种情况可以避免将用户提供的字符串注入到我的 PowerShell 代码中。虽然我确实有正确的转义代码(复制每个引号,并且带有单引号字符串的powershell接受5个不同的引号字符,包括智能引号,但现在让我们假设它接受'我想要做的是有一个正则表达式告诉我字符串是否被正确转义,转义是通过将引号加倍来完成的,因此字符串如下
hello ' there
坏的时候
hello '' there
是安全的
但是 3 个引号(或 5 个或 7 个等)也很糟糕,所以
hello ''' there
也很危险
所以我试图找到一个可以验证字符串是否正确转义的正则表达式,因为没有奇数单引号模式。
我知道像这样的标准正则表达式计数组是不可能的,但是对于 dotnet 捕获组,我希望做这样的事情。
('\b(?<DEPTH>)|\b'(?<-DEPTH>)|[^']*)*(?(DEPTH)(?!))
但我无法让它工作。