簡體   English   中英

簡單的正則表達式匹配問題

[英]Simple regex match question

我有以下字符串“ sometextsometextSiteId-111-aaaaasometext”

如果字符串包含“ SiteId-111-aaaaa”,我想獲取111-aaaaa部分。 (任何數字,任何字符)

"sometextsometextSiteId-111-aaaaasometext"  -> 111-aaaaa
"sometextsometextSiteId-123-abcdesometext"  -> 123-abcde
"sometextsometextsitId-111-aaaaasometext" -> (nothing)
"SiteId-999-QWERTPOIPOI" -> "999-QWERR"

我想這應該可行嗎?

任何提示?

謝謝拉爾西

(?<=SiteId-)([0-9]+-[a-zA-Z]{5})

應該抓住那部分。

PowerShell測試:

$re = '(?<=SiteId-)([0-9]+-[a-zA-Z]{5})'

'sometextsometextSiteId-111-aaaaasometext',
"sometextsometextSiteId-123-abcdesometext",
"sometextsometextsitId-111-aaaaasometext",
"SiteId-999-QWERTPOIPOI" |
% {
    $x = [regex]::Matches($_, $re)
    Write-Host $_ - $x
}

產量

sometextsometextSiteId-111-aaaaasometext - 111-aaaaa
sometextsometextSiteId-123-abcdesometext - 123-abcde
sometextsometextsitId-111-aaaaasometext - 
SiteId-999-QWERTPOIPOI - 999-QWERT

SiteId-(\\ d {3}-\\ D +)應該可以捕獲它。

您也可以使用rubular嘗試使用正則表達式,並且在底部有一個快速的regexp參考。

暫無
暫無

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

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