Java: получить целочисленное значение из URL - PullRequest
0 голосов
/ 01 ноября 2011

Привет. Я пытаюсь получить строку из URL.

Я использую регулярное выражение.

String url = "http://localhost/htc/android/htc-incredible/259164-gpid";
Pattern regex = Pattern.compile("^.+/(\\d+)-gpid$"); 
Matcher tagmatch = regex.matcher( url );
System.out.println(tagmatch.group(0));

Ошибка:

Exception in thread "main" java.lang.IllegalStateException: No match found

Что я делаю не так:

Ответы [ 3 ]

3 голосов
/ 01 ноября 2011

Вам нужно использовать group(1) (содержимое первой группы захвата), а не group(0) (все совпадение).

О, и, конечно, вам действительно нужно выполнить поиск:

tagmatch.find();
System.out.println(tagmatch.group(1));
1 голос
/ 14 апреля 2015

Вы можете попробовать это:

String url = "http://localhost/htc/android/htc-incredible/259164-gpid";
url.substring(url.indexOf('/',url.indexOf("htc-incredible/"))+1,url.indexOf("-gpid"));
1 голос
/ 01 ноября 2011

Кроме того, вы можете использовать lastIndexOf в сочетании с split, чтобы получить ту часть URL, которую вы хотите.Код будет выглядеть так

url.substring(url.lastIndexOf('/')+1).split("-")[0] //prints 259164
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...