2015-06-12 4 views
1

У меня есть строки, которые выглядят следующим образом:Получить номер Группировка с Regex

get_a_string_A14_for_1.23.87.19_A12_and_others 
get_a_string_A14_for_1.23.827.19_A12_and_others 
get_a_string_A14_for_1.23.87.1_A12_and_others 
get_a_string_A14_for_2.23.87.19_A12_and_others 

Я хочу, чтобы вытащить число 1.23.87.19, 1.23.827.19, 1.23.87.1 и 2.23.87.19. Числа будут меняться, но это основная структура чисел.

Я пробовал делать:

([0-9]\.[0-9]) 
[0-9]\.[0-9]{1,4} 
[0-9]\.[0-9]\.[0-9]{1,4} 
[0-9]\.[0-9]\.[0-9] 

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

+0

Основываясь на том, что вы уже пробовали, вы можете сделать это так: \ d + \ . \ d + \. \ d + \. \ d + –

ответ

3

Вы можете использовать это регулярное выражение:

[0-9]+(?:\.[0-9]+)+ 

RegEx Demo

RegEx Распад:

[0-9]+   # Match 1 OR more digits 
(?:   # start of non-capturing group 
\.    # match a literal dot 
[0-9]+   # Match 1 OR more digits 
)    # group close 
(?:\.[0-9]+)+ # Match 1 OR more of the expression in the group 
+1

Ты спасатель жизни. Спасибо! – BlackHatSamurai

+2

Объяснение действительно полезно. – BlackHatSamurai

Смежные вопросы