2016-11-30 54 views
0

您好我有這樣的記錄給定的字符串特定長度的字符,提取在Python正則表達式

如:

Health Insurance PortabilityNEG Ratio 
Health Insurance PortabilityNEGRatio 
Health Insurance PortabilityNEG NEGRatio 

在這裏,我需要提取PortabilityNEG 我用正則表達式作爲

Insurance(.{25}).*? 

但我不想提保險。請讓我知道我該如何寫正則表達式?

+0

'import re; re.sub(r「(\ w +)\ s(\ w +)\ s(\ w {0,14})([\ w] +)」,「\\ 3」,「健康保險PortabilityNEGRatio」)? – 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

既然你不想提 「保險」,你可以嘗試以下方法:

# 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'] 

我希望這有助於。