SMA*_*AVA 1 java split substring
我有一个字符串:"这是一个应该使用的URL http://www.google.com/MyDoc.pdf "
我只需要提取从http开始并以pdf结尾的URL:http: //www.google.com/MyDoc.pdf
String sLeftDelimiter = "http://";
String[] tempURL = sValueFromAddAtt.split(sLeftDelimiter );
String sRequiredURL = sLeftDelimiter + tempURL[1];
Run Code Online (Sandbox Code Playgroud)
这会将输出显示为"应该使用的http://www.google.com/MyDoc.pdf"
需要帮助.
nd.*_*nd. 11
这种问题是正则表达式的用途:
Pattern findUrl = Pattern.compile("\\bhttp.*?\\.pdf\\b");
Matcher matcher = findUrl.matcher("This is a URL http://www.google.com/MyDoc.pdf which should be used");
while (matcher.find()) {
System.out.println(matcher.group());
}
Run Code Online (Sandbox Code Playgroud)
正则表达式解释说:
\b
在"http"之前有一个单词边界(即xhttp不匹配)http
字符串"http"(请注意,这也匹配"https"和"httpsomething").*?
任何字符(.
)任意次数(*
),但尝试使用最少量的字符(?
)\.pdf
文字字符串".pdf"\b
在".pdf"之后有一个单词边界(即.pdfoo不匹配)如果您只想匹配http和https,请尝试使用此http
字符而不是字符串:
https?\:
- 这匹配字符串http,然后是可选的"s"(由?
s后面指示),然后是冒号.