Как получить номер текста? - PullRequest
0 голосов
/ 13 мая 2010

У меня есть текст вроде «Это 145 из 13221 предметов». Мне нужно получить все количество ("145 и 13221") текста за один раз. Я хочу использовать регулярные выражения, чтобы сделать это. Что такое регулярное выражение? "\ d +" не работает нормально.

Ответы [ 3 ]

3 голосов
/ 13 мая 2010

\d+ работает отлично. В зависимости от языка может потребоваться экранировать косую черту до "\\d+", например на Java.

    String text = "It's the 145 of 13221 items";
    Matcher m = Pattern.compile("\\d+").matcher(text);
    while (m.find()) {
        System.out.println(m.group());
    }
    // prints "145", "13221"

Вам необходимо выяснить, как найти совпадения регулярных выражений в строке на вашем языке, но шаблон \d+ будет соответствовать ненулевой последовательности последовательных цифр.


В Javascript вы можете сделать что-то вроде этого:

function findDigitSequences(s) {
    var re = new RegExp("\\d+", "g");
    return s.match(re);
}
2 голосов
/ 13 мая 2010

Вам нужно использовать что-то вроде ^[^\d]*(\d+)[^\d]*(\d+)[^\d]*$. Зависит от того, какой вкус регулярного выражения вы используете.

Это регулярное выражение соответствует:

  1. Ноль или более нечисловых символов в начале («Это»)
  2. Один или несколько числовых символов в группе захвата № 1 («145»)
  3. Ноль или более нечисловых символов ("of")
  4. Один или несколько числовых символов в группе захвата № 2 («13221»)
  5. Ноль или более нечисловых символов в конце («элементы»)
0 голосов
/ 13 мая 2010
^[\D\w]+([\d]+)[\D\w]+([\d]+).+$

Группы захвата:

  1. 145
  2. 13221

Извините, мой мозг отключился, когда я написал это

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