[英]Regex to pick out url part of a long string
我有一個很長的字符串,在該字符串的某個地方,有一個URL。 在此示例中,該URL在開頭。
"http://localhost:1234/api/$metadata#this_entry_is_variable_and_can_exist_of_numbers_and_characters/$entity","Version":"AAAEEEIIU=""
我正在嘗試使用C#為此特定字符串編寫一個RegEx,以遵循以下規則提取URL:
/api
,但可以是任何字符 /api
,始終為/$metadata
/$metadata
之后,有一個#
后跟任何字符的字符串 /$entity
結尾 到目前為止,這是我想出的RegEx:
(^http://\w+(\.\w+)*(:[0-9]+)?\/?(\/[.\^$metadata$(\#(\[a-zA-Z0-9)(\$(\entity$))]*).*?)
在LinqPad中進行測試時,會發生以下問題:
任何人都可以給我一個提示,因為我被困住了。
試試這個正則表達式:
https?://[\w-]+(?:\.[\w-]+)*(?::\d+)?/.*?\$metadata#.*?\$entity\b
給您的問題:
由於^
您僅匹配了一個正則表達式。 如果未設置RegexOptions.Multiline
則僅與輸入字符串的開頭匹配;如果設置了RegexOptions.Multiline
則僅與每個新行的開頭(在換行符之后) RegexOptions.Multiline
。
正則表達式在$metadata...entity$
被[]
包圍的部分中混雜在一起
見2。
只需將s
可選?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.