regex - 正则表达式匹配任何字符串powershell

标签 regex parsing powershell match

无论我对正则表达式的感觉如何,它们似乎总是在击败我。

我正在寻找一种可以匹配任何字符串的通用模式。我能弄清楚如何处理所有这些不同的命名约定的唯一方法是制作一堆不同的正则表达式模式,现在我什至不确定是否所有数据都已被提取,所以我将不得不手动进行交叉检查它。

我只是想拿起可能在两个方括号[]中的所有内容:

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/

相关文章:

java - JavaCC 中的多行注释

c# - 转换没有时区的日期时间

windows - 远程运行 RUNDLL32.EXE PRINTUI.DLL,PrintUIEntry 进行打印机设置更新

.net - 无需外部库即可生成自签名证书

powershell - 我们如何使用 powershell 脚本获取以 KB 为单位的文件大小?

regex - Matlab:正则表达式替换

regex - 如何保留与 sed 匹配的第一个实例

Excel VBA 的正则表达式正向回顾问题

php - 帮忙解析resources.arsc?

c++ - 递归下降解析器问题