Ответ 1
если вы точно знаете, что будут только 2 места, где у вас есть список цифр в вашей строке, и это единственное, что вы собираетесь вытащить, тогда вы сможете просто использовать
\d+
Может кто-нибудь помочь мне построить это регулярное выражение, пожалуйста...
Учитывая следующие строки...
Мне нужно регулярное выражение, которое извлечет два числа из текста. Название месяца будет отличаться. Скобки, "виджеты меньше" и "звездочки" не будут меняться между строками, однако было бы очень полезно, если бы этот текст также мог быть изменен.
Спасибо заранее.
если вы точно знаете, что будут только 2 места, где у вас есть список цифр в вашей строке, и это единственное, что вы собираетесь вытащить, тогда вы сможете просто использовать
\d+
^\s*(\w+)\s*\(\s*(\d+)\D+(\d+)\D+\)\s*$
должен работать. После матча, backreference 1 будет содержать месяц, backreference 2 будет содержать первое число и backreference 3 второе число.
Объяснение:
^ # start of string
\s* # optional whitespace
(\w+) # one or more alphanumeric characters, capture the match
\s* # optional whitespace
\( # a (
\s* # optional whitespace
(\d+) # a number, capture the match
\D+ # one or more non-digits
(\d+) # a number, capture the match
\D+ # one or more non-digits
\) # a )
\s* # optional whitespace
$ # end of string
вы можете использовать что-то вроде:
[^0-9]+([0-9]+)[^0-9]+([0-9]+).+
Затем получите первую и вторую группы захвата.