Powershell正则表达式匹配以管道字符结尾的第一个字符串

时间:2017-08-24 03:12:31

标签: regex powershell

我是PowerShell的新手,并且正则表达式的处理方式似乎有些不同。目前正在迭代大量的txt文件,并希望每个文件的开头(这是一个URL)直到|字符。

每个文件的开头都是以斜杠结尾的网址。这是我没有运气的第十次尝试:

$FirstUrl = '.*/\|$'

推进For-Each循环,我试图抓住的所有其他信息都按预期出现:

Foreach-Object {
    $FileContent = Get-Content $_.FullName
    $Pos = Select-String -InputObject $FileContent -Pattern $FirstURL

有关如何在$ FirstURL中对正则表达式进行短语的任何提示。我对正则表达式一般都很“好”,并试图找到适合PowerShell的文档。

1 个答案:

答案 0 :(得分:0)

如果每个文件在第一行中都有 URL ,之后有一个Pipe,那么在这种情况下你不需要使用正则表达式。您可以直接将其拆分为:

$FileContent = Get-Content $_.FullName
$FileContent.Split('|')[0]

Split实际上将结果数据拆分为一个数组。然后第一个数组元素将在'0th'索引中,你可以把它取出来。

希望它有所帮助。