Аллен в основном имеет Java-код, так что вы можете использовать его. Однако его выражение соответствует , если вашим числам предшествует только поток слов.
"(\\d+)"
должен быть в состоянии найти первую строку цифр. Вам не нужно указывать, что перед ним, если вы уверены, что это будет первая строка цифр. Кроме того, нет смысла указывать, что после этого, если вы этого не хотите. Если вам просто нужен номер, и вы уверены, что это будет первая строка из одной или нескольких цифр, то это все, что вам нужно.
Если вы ожидаете, что он будет смещен пробелами, это сделает его еще более отчетливым для указания
"\\s+(\\d+)\\s+"
может быть лучше.
Если вам нужны все три части, это будет делать:
"(\\D+)(\\d+)(.*)"
РЕДАКТИРОВАТЬ Выражения, данные Алленом и Джеком, предполагают, что вам нужно указать некоторое подмножество нецифровых чисел для захвата цифр . Если вы скажете движку регулярных выражений, что ищете \d
, то он будет игнорировать все до цифр. Если выражение J или A соответствует вашему шаблону, то полное совпадение равно входной строке . И нет никаких оснований указывать это. Это, вероятно, замедляет чистое совпадение, если не полностью игнорируется.