2013-09-22 2 views
0

Сейчас у меня этот код ниже:Обнаружение нескольких целых чисел Внутри строки с помощью Regex

Pattern intsOnly = Pattern.compile("\\d+"); 
    Matcher matcher = intsOnly.matcher(o1.getIngredients()); 
    matcher.find(); 
    String inputInt = matcher.group(); 

Что в настоящее время происходит то, что с помощью Regex, он находит первое целое число в строку и разделяет его так, что я могу проводить действия на нем. Строка, которую я использую, чтобы найти целые числа внутри, имеет много целых чисел, и я хочу, чтобы все они были разделены. Как я могу настроить этот код так, чтобы он также записывал другие целые числа из строки, а не только из первой.

Заранее благодарен!

+0

Как выглядят ваши строковые данные и вы используете платформу Java? – hwnd

+0

Это набор ингредиентов. Пример будет таким: 1 яйцо, 2 бекона, 3 картофеля. В этом примере мне нужно найти все три числа. В настоящее время я только оттягиваю первый. – edwoollard

ответ

2

В вашем публикуемом коде:

matcher.find(); 
String inputInt = matcher.group(); 

Вы соответствие всей строки с одним вызовом, чтобы найти. А затем присваивая первое совпадение цифр вашей строке inputInt. Например, если у вас есть данные ниже строки, ваш возврат будет только 1.

1 egg, 2 bacon rashers, 3 potatoes 

Вы должны использовать while цикл для перебора ваших матчей.

Pattern intsOnly = Pattern.compile("\\d+"); 
Matcher matcher = intsOnly.matcher(o1.getIngredients()); 
while (matcher.find()) { 
    System.out.println(matcher.group()); 
} 
+0

Спасибо большое. Он отлично работает и считывает все соответствующие номера. Я новичок в Regex и не думал об этом прямо. Я ценю вашу помощь. – edwoollard

+0

Теперь, когда я нашел целые числа, я хочу умножить их на значение, а затем поместить их обратно в исходную строку с новым умноженным числом. Можете ли вы помочь мне в этом? Как мне это решить? – edwoollard

+0

Думал, что я поставил бы новый вопрос, чтобы у вас появился шанс заработать больше репутации. Вот ссылка: http://stackoverflow.com/questions/18971006/multiply-integers-inside-a-string-by-an-individual-value-using-regex – edwoollard

 Смежные вопросы

  • Нет связанных вопросов^_^