Reputation: 582
The user inputs the following info into a textarea:
Member[0] [U:1:189360279] team = 0
Member[1] [U:1:189331590] team = 0
Member[2] [U:1:52453166] team = 0
Member[3] [U:1:129146865] team = 0
Member[4] [U:1:187520208] team = 0
Member[5] [U:1:25945591] team = 1
Member[6] [U:1:188594831] team = 1
Member[7] [U:1:145357907] team = 1
Member[8] [U:1:116190211] team = 1
Member[9] [U:1:183457922] team = 1
I want to extract only the long number that comes after [U:1:
(i.e. 189360279), for each line, and then make an array out of all of the numbers that are extracted.
I tried some different expressions on http://www.rubular.com/ but am coming up short, I am not very familiar with regex.
Upvotes: 1
Views: 80
Reputation: 4897
To extract the long number use:
(?!\[U:\d+:)(?<=:)\d+(?=\])
This matches the long number in capturing group 0.
Upvotes: 2
Reputation: 10825
It's very simple: \[U:\d:(\d+)\]
. And then:
text.scan(/\[U:\d:(\d+)\]/).map { |i| i.first.to_i }
Upvotes: 3