簡體   English   中英

在PowerShell中使用RegEx匹配

[英]Using RegEx matches with PowerShell

我有一個龐大的音樂庫,在其中使用PowerShell / RegEx查找特定的歌曲。 我很難找到只需要的確切藝術家。 例如,此代碼:

$artist = "Paul Young"
$allsongsRAW = Get-ChildItem -Path "C:\Music" -Recurse | Where-Object {$_.Extension -eq ".mp3"}
($allsongsRAW -match "(\s*$artist\s(-|\W)\s*)" | Sort-Object {Get-Random}).Name

返回值:

Paul Young - Everything Must Change.mp3
Paul Young - Come Back And Stay.mp3
Paul Young - Everytime You Go Away.mp3
John Paul Young - Love Is In The Air.mp3
Paul Young - Wherever I Lay My Hat (That's My Home).mp3
Paul Young - What Becomes Of The Brokenhearted.mp3
Paul Young - Love of the Common People.mp3

這段代碼:

$artist = "Queen"
$allsongsRAW = Get-ChildItem -Path "C:\Music" -Recurse | Where-Object {$_.Extension -eq ".mp3"}
($allsongsRAW -match "(\s*$artist\s(-|\W)\s*)" | Sort-Object {Get-Random}).Name

返回值:

Storm Queen - Look Right Through (Jamie Jones Remix).mp3
Queen - The Invisible Man.mp3
Queen - Don't Stop Me Now.mp3
Storm Queen - Look Right Through (MK Dub III).mp3
Queen - Bohemian Rhapsody.mp3
Queen - I'm In Love With My Car.mp3
Queen - One Vision.mp3
Queen - A Kind Of Magic.mp3
Queen - Radio Ga Ga.mp3
Queen - Killer Queen.mp3
Queen - You're My Best Friend.mp3
Queen - Fat Bottomed Girls.mp3
Queen - Headlong.mp3
Queen - I Want It All.mp3
Queen - Somebody To Love.mp3
Queen - Bicycle Race.mp3
Queen - Crazy little thing called love.mp3
Queen - Body Language.mp3
Queen - Another One Bites The Dust.mp3
Queen - We Are The Champions.mp3
Queen - Tie Your Mother Down.mp3
Queen - Under Pressure.mp3
Queen - We Will Rock You.mp3
Queen - I Want To Break Free.mp3
Queen - Flash.mp3
Queen - Fight From The Inside.mp3

如您所見,我正在使用的正則表達式正在挑選其他具有相似名稱的歌手,尤其是具有其他名稱的歌手遵循搜索條件。

如何調整RegEx以僅顯示所需的藝術家?

使用克拉符號表示字符串的開始。

$allsongsRAW -match "^\s*$artist\s(-|\W)\s*"

我消除了您的外括號,因為它們似乎是多余的。

另外,您可以將匹配項移動到Where-Object條件中:

Get-ChildItem -Path "C:\Music" -Recurse `
| Where-Object {($_.Extension -eq ".mp3") -and ($_.Name -match "^\s*$artist\s(-|\W)\s*")} `
| Sort-Object {Get-Random} `
| Select-Object -ExpandProperty Name;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM