Регулярное выражение Java - PullRequest
1 голос
/ 06 августа 2011

У меня есть строка abc = "userId = 123 & billId = 567 & custId = 890" Как использовать регулярное выражение в Java для возврата 567?

Ответы [ 3 ]

3 голосов
/ 06 августа 2011

Предполагая, что это всегда значение billId, которое вы хотите извлечь, и этот billId всегда является целым числом:

\bbillId=(\d+)

Пример:

Pattern pattern = Pattern.compile("\\bbillId=(\\d+)");
Matcher matcher = pattern.matcher(inputStr);
int billId = 0;

if(matcher.find())
    billId = Integer.parseInt(matcher.group(1));
2 голосов
/ 06 августа 2011

Это строка запроса?Это точно выглядит как один.У вас есть много возможностей для анализа одного из них, и я бы с легкостью воспользовался одним из них, а не регулярным выражением.

Посмотрите на ответы здесь: Разбор строк запроса на Android

0 голосов
/ 06 августа 2011

Использовать split

. Пример такой:

String abc="userId=123&billId=567&custId=890"
String[] partsOfExpression = abc.split("&");
String bill = partsOfExpression[1];
String[] billExp = bill.split("=");
int billAmount = Integer.parseInt(billExp[1]);

Этот код немного неуклюжий и может быть много уточнен, но в основном он дает вам полное значение каждый раз по сравнению с получениемраздел строки между двумя точками или что-то в этом роде.

Вы также можете изменить этот метод, чтобы получить значение любой части строки, используя .equals, но то, что вы делаете, зависит от вас.

Вы также можете посмотреть на подстроки идругие методы в библиотеке Java Strings.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...