无论我觉得我如何知道正则表达式,他们总是似乎打败了我.
我正在寻找一个匹配任何字符串的通用模式.我唯一可以弄清楚如何处理所有这些不同的命名约定的方法,是制作了一堆不同的正则表达式,现在我甚至不确定所有的数据是否被拾取,所以我必须手动交叉检查它.
我只是想拿起任何可能在两个方括号内的东西[]:
elseif($line -match "\[\w*\d*\]") { $pars = $matches[0] } elseif($line -match "\[\d*\w*\]") { $pars = $matches[0] } elseif($line -match "\[\w*\d*_\w*\]") { $pars = $matches[0] } elseif($line -match "\[\w*\d*_*\w*-*\w*:*\w*\]") { $pars = $matches[0] } elseif($line -match "\[\w*_*\w*_*\w*_*\w*_*\w*_*\w*-*\w*\]") { $pars = $matches[0] }
我这样做的方式不会产生错误,但我不确定它是否处理了我可能遇到的所有情况.手动检查几乎不可能有这么多的数据.
另外,如果有人知道用于生成正则表达式模式的很好的实用程序,那将是非常感激的.我只能找到对我来说不是非常有用的正则表达式测试人员,在网上使用powerhell的正则表达式很少有帮助.
$a = [regex]"\[(.*)\]" $b = $a.Match("sdfqsfsf[fghfdghdfhg]dgsdfg") $b.Captures[0].value