无论我对正则表达式的感觉如何,它们似乎总是在击败我。
我正在寻找一种可以匹配任何字符串的通用模式。我能弄清楚如何处理所有这些不同的命名约定的唯一方法是制作一堆不同的正则表达式模式,现在我什至不确定是否所有数据都已被提取,所以我将不得不手动进行交叉检查它。
我只是想拿起可能在两个方括号[]中的所有内容:
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]
}
我这样做的方式不会产生错误,但是我不确定它是否可以处理我可能遇到的所有情况。使用这么多的数据,手动检查几乎是不可能的。
同样,如果有人知道生成正则表达式模式的强大工具,将不胜感激。我只能找到对我不是很有用的正则表达式测试器,而且对于带有powershell的正则表达式,在线帮助不大。
最佳答案
$a = [regex]"\[(.*)\]"
$b = $a.Match("sdfqsfsf[fghfdghdfhg]dgsdfg")
$b.Captures[0].value
关于regex - 正则表达式匹配任何字符串powershell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18000757/