我需要使用正则表达式从文本文件中获取所有网址。但并非所有url,url都是以某个模板开头的。例如。我有文字:
{"Field_Name1":"http://google.ru","FieldName2":
"["some text", "http://example.com/view/...&id..&.."]",
"FieldName3": "http://example.com/edit/&id..."}someText"
["some text", "http://example.com/view/...&id..&.."]",
"FieldName3": "http://example.com/view/&id..."}someText2{..}someText.({})
我需要获取所有网址http://example.com/view/.....
我尝试使用这个正则表达式,但它不起作用。也许我有一些错误。
^(http|https|ftp)\://example\.com\/view\/+[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(:[a-zA-Z0-9]*)?/?[^\.\,\)\(\s]$
我不需要纯网址检查程序,我需要能够获取以某个模板开头的网址的检查程序
答案 0 :(得分:1)
这个怎么样?
((ftp|http[s]?):\/\/example.com\/view\/.*?)\"
第一部分直到“/ view /”应该清楚。其余的“。*?”\“”表示,在双引号之前显示所有内容。
答案 1 :(得分:0)
我认为这会奏效!我把它放在了regexr.com上,它似乎只选择了url部分,因为文本字符串实际上并没有连续多个句点。
编辑:做得更好,或者至少我认为我做了。基本上表达式是:"寻找引号,如果下一个字符是 h ,那么在匹配中包含它并将其作为起点,然后包含任何字符导致一个句号,然后是任何小写字母。可能有一百万。只要在它之前有一段时间,你就会很好,除非在字符串之后的另一个时期,否则它不会超越它。("?!)。H + + [A-Z] *
答案 2 :(得分:0)
环球:
/(ftp|http|https)\:\/\/([\d\w\W]*?)(?=\")/igm
模板:
/(ftp|http|https)\:\/\/example\.com\/view\/([\d\w\W]*?)(?=\")/igm