Получить числа из строки - PullRequest
5 голосов
/ 30 июля 2009

Я получил строку:

"1|2 3 4 oh 5 oh oh|e eewrewr|7|".

Я хочу получить цифры между первыми каналами (|), возвращая «2 3 4 5».

Может кто-нибудь помочь мне с регулярным выражением сделать это?

Ответы [ 3 ]

8 голосов
/ 30 июля 2009

Это работает?

"1|2 3 4 oh 5 oh oh|e eewrewr|7|".split('|')[1].scan(/\d/)

6 голосов
/ 31 июля 2009

Ответ Аруна идеально подходит, если вы хотите только цифры. т.е.

"1|2 3 4 oh 5 oh oh|e eewrewr|7|".split('|')[1].scan(/\d/)
 # Will return ["2", "3", "4", "5"]
"1|2 3 4 oh 55 oh oh|e eewrewr|7|".split('|')[1].scan(/\d/)
 # Will return ["2", "3", "4", "5", "5"]

Если вам нужны цифры,

# Just adding a '+' in the regex:
"1|2 3 4 oh 55 oh oh|e eewrewr|7|".split('|')[1].scan(/\d+/)
# Will return ["2", "3", "4", "55"]
0 голосов
/ 30 июля 2009

, если вы хотите использовать просто регулярное выражение ...

\|[\d\s\w]+\|

, а затем

\d

но это, вероятно, не лучшее решение

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