2016-11-30 7 views
0

Привет У меня есть записи, как,Извлечение символов определенной длины из заданной строки в Python Regex

Например:

Health Insurance PortabilityNEG Ratio 
Health Insurance PortabilityNEGRatio 
Health Insurance PortabilityNEG NEGRatio 

Здесь мне нужно извлечь PortabilityNEG я использовал регулярное выражение, как

Insurance(.{25}).*? 

Но я не хочу упоминать о страховании. Как я могу сообщить, как я могу написать регулярное выражение в соответствии с этим?

+0

'import re; (\ w +) \ s (\ w {0,14}) ([\ w] +) "," \\ 3 "," Портативность медицинского страхованияNEGRatio ")'? – Abdou

ответ

0

Так вы можете извлечь все термины PortabilityNEG из строк, которые вы указали.

import re 

a=""" 
Health Insurance PortabilityNEG Ratio 
Health Insurance PortabilityNEGRatio 
Health Insurance PortabilityNEG NEGRatio 
""" 
print re.findall('Insurance\s+(PortabilityNEG)',a,re.MULTILINE) 

Выход:

['PortabilityNEG', 'PortabilityNEG', 'PortabilityNEG'] 
0

Поскольку вы не хотите, чтобы указать "Insurance", вы можете попробовать следующее:

# Set up your test string 
test_string = """Health Insurance PortabilityNEG Ratio 
Health Insurance PortabilityNEGRatio 
Health Insurance PortabilityNEG NEGRatio""" 

# Set your pattern using regular expression groups 
pattern = re.compile("(\w+)\s(\w+)\s(\w{0,14})([\w ]+)") 

# Use re.sub to replace all groups with only the third group 
[pattern.sub('\\3',x) for x in test_string.split("\n")] 

# ['PortabilityNEG', 'PortabilityNEG', 'PortabilityNEG'] 

Я надеюсь, что это помогает.

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