[英]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+(?=\/$)
否則使用
[^-\/]*(?=\/?$)
請注意,在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.