簡體   English   中英

部分網址的正則表達式

[英]Regular expression of partial url

我有以下幾點:

https://www.example.com/my-suburl/sub-dept/xx-xxxx-xx-yyyyyy/

我到目前為止試圖在URL中找到'yyyyy':

(.*)\/sub-dept\/(.*[^\/])\/([^\/]*)$

哪個匹配:

https://www.example.com/my-suburl

xx-xxxx-xx-yyyyyy

但是就像我說的那樣,我需要特定的“ yyyyy”匹配項

基於非C#的解決方案

如果xx是實際字符串中的數字,則只需使用

\d+(?=\/$)

否則使用

[^-\/]*(?=\/?$)

參見演示1演示2

請注意,在JS中,沒有后顧之憂,因此,如果必須檢查/ sub-dept /是否位於所需的子字符串的前面,則必須依靠捕獲組機制:

\/sub-dept\/[^\/]*-([^-\/]*)\/?

觀看另一個演示

原始答案

這是您可以使用的正則表達式

(?<=/sub-dept/[^/]*-)[^/-]*(?=/$)

觀看演示

正則表達式與包含0或多個/-以外的其他字符的子字符串匹配。

  • (?<=/sub-dept/[^/]*-)開頭/sub-dept/后跟1個或多個除/以外的字符,再加上連字符
  • (?=/$) -在字符串末尾緊跟一個/符號。

或者,有一種非正則表達式的方式:用/分割字符串,得到最后一部分,再用-分割。 這是一個示例(出於演示目的,不進行錯誤/空檢查):

var result = text.Trim('/').Split('/').LastOrDefault().Split('-').LastOrDefault();

暫無
暫無

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

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