私は現在、かなり大きなテキスト文書で複数のキーワードを検索しようとしています。たとえば、地域とニューヨークが一文で表示されるかどうか検索する必要があります。私が持っている現在のスクリプトは、どちらか一方だけを提供しますが、両方を提供しません。文中に複数のキーワードを見つける
私の現在のスクリプトは次のとおりです。
Get-Content <file name>.txt | Select-String '(phrase)'
任意の考え?ここで
私は現在、かなり大きなテキスト文書で複数のキーワードを検索しようとしています。たとえば、地域とニューヨークが一文で表示されるかどうか検索する必要があります。私が持っている現在のスクリプトは、どちらか一方だけを提供しますが、両方を提供しません。文中に複数のキーワードを見つける
私の現在のスクリプトは次のとおりです。
Get-Content <file name>.txt | Select-String '(phrase)'
任意の考え?ここで
は、複数のパターンの結果を取得する方法である:
get-content "YourTextFile.txt" | select-string -pattern '(regional.*new york)|(new york.*regional)'
は基本的に、これは2つの句は、いずれかの順序で同じ行で発生するものを探します。
これを読んで、ここでパターンの一致に使用しているものがあります。ワイルドカードとa。あなたのチケットになります。 http://ss64.com/ps/syntax-regex.html
このような検索を行うには、Regexオブジェクトを使用できます。 `どこ-オブジェクト{$ _ -match 'foo' で-and $ _ -match 'バー'}:あなたが複数の節と`どこ-Object`フィルタを使用することができ
$inFile = get-content c:\temp\test.txt
$matchedLines = New-Object -TypeName System.collections.ArrayList
foreach ($line in $inFile)
{
$match = [regex]::Match($line, '(?i).*regional.*new york.*|(?i).*new york.*regional.*')
if ($match.Success -eq $true)
{
$matchedLines.Add($match)
}
}
Write-Output $matchedLines.Value
:ここではどのようなものがあるように見えます'。ただし、入力ファイルに1行の各文が含まれていない限り、同じ文章ではなく異なる行にある用語を一致させることはできません。 –