[英]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.