I have a string as : "This is a URL http://www.google.com/MyDoc.pdf which should be used"
I just need to extract the URL that is starting from http and ending at pdf : http://www.google.com/MyDoc.pdf
String sLeftDelimiter = "http://";
String[] tempURL = sValueFromAddAtt.split(sLeftDelimiter );
String sRequiredURL = sLeftDelimiter + tempURL[1];
This gives me the output as "http://www.google.com/MyDoc.pdf which should be used"
Need help on this.
Try this
You can use String.replaceAll with a capturing group and back reference for a very concise solution:
Here's a breakdown for the regex: https://regexr.com/3qmus
You can use
Regular Expression
power for here. First you have to findUrl
in original string then remove other part.Following code shows my suggestion:
This snippet code cans retrieve any url in any string with any pattern. You cant add customize protocol such as
https
to protocol part in above regular expression.I hope my answer help you ;)
This kind of problem is what regular expressions were made for:
The regular expression explained:
\b
before the "http" there is a word boundary (i.e. xhttp does not match)http
the string "http" (be aware that this also matches "https" and "httpsomething").*?
any character (.
) any number of times (*
), but try to use the least amount of characters (?
)\.pdf
the literal string ".pdf"\b
after the ".pdf" there is a word boundary (i.e. .pdfoo does not match)If you would like to match only http and https, try to use this instead of
http
in your string:https?\:
- this matches the string http, then an optional "s" (indicated by the?
after the s) and then a colon.why don't you use startsWith("http://") and endsWith(".pdf") mthods of String class.
Both the method returns boolean value, if both returns true, then your condition succeed else your condition is failed.