Java регулярное выражение для извлечения целого числа из большой части текста - PullRequest
0 голосов
/ 04 октября 2010

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

Значение, которое мне нужно извлечь, всегда появляется в строке вида:

[formatted_int_value] результаты на [the_integer_value_I_need_to_extract] страницах

например: 3 342 результатов на 67 страницах

В приведенном выше примере значение, которое я пытаюсь извлечь, равно 67Также обратите внимание, что каждое слово в приведенном выше примере может быть разделено одним или несколькими пробелами и / или символами новой строки.И, как уже упоминалось выше, этот текст является частью большей части текста (я делаю скрининг веб-страницы).

Может ли кто-нибудь помочь мне с помощью регулярного выражения для извлечения нужного мне значения int (67 вмой пример выше) который учитывает условия, которые я предоставил?

Спасибо.

Ответы [ 2 ]

1 голос
/ 04 октября 2010

Регулярное выражение будет довольно простым:

([\d,]+)\s+results\s+across\s+(\d+)\s+pages

67 будет в группе 2, другой номер (если вам это нужно) в группе 1.

var text = "some text here 3,342 results across 67 pages some more text here";
var regex = /([\d,]+)\s+results\s+across\s+(\d+)\s+pages/;

var matches = regex.exec(text);

/* matches will be this array:

["3,342 results across 67 pages", "3,342", "67"]
---- entire match --------------  --g1---  -g2-    
*/
0 голосов
/ 04 октября 2010
int theIntYouWantToExtract = Integer.parseInt(yourLongText.replaceAll(
        ".*([\d,]+) results across ([\d,]+) pages.*",
        "$2"));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...