python正则表达式难题。

查看:109
本文介绍了python正则表达式难题。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题


我想用正则表达式把图中选取的那些提取出来,就是那些有1或者2个-的那些。
我google,baidu了一天实在弄不了,所以来请教大神
先谢谢了,求帮助

'ALIAS\tCOUNTRY\t\t\t\tLOCATION\t\t\tRECOMMENDED\n', '-----\t---------------\t\t\t------------------------------\t-----------\n', 'smart\tSmart Location\t\t\tHong Kong - 1\t\t\tY\n', 'hk1\tHong Kong (HK)\t\t\tHong Kong - 1\t\t\tY\n', 'hk2\t\t\t\t\tHong Kong - 2\t\t\tY\n', 'hk3\t\t\t\t\tHong Kong - 3\t\t\t\n', 'jpto1\tJapan (JP)\t\t\tJapan - Tokyo - 1\t\tY\n', 'jpto2\t\t\t\t\tJapan - Tokyo - 2\t\t\n', 'usla\tUnited States (US)\t\tUSA - Los Angeles\t\tY\n', 'usny\t\t\t\t\tUSA - New York\t\t\t\n', 'usny2\t\t\t\t\tUSA - New York - 2\t\t\n', 'usla3\t\t\t\t\tUSA - Los Angeles - 3\t\tY\n', 'ussc\t\t\t\t\tUSA - Santa Clara\t\tY\n', 'usde\t\t\t\t\tUSA - Denver\t\t\tY\n', 'ussj\t\t\t\t\tUSA - San Jose\t\t\tY\n', 'usla2\t\t\t\t\tUSA - Los Angeles - 2\t\tY\n', 'usla1\t\t\t\t\tUSA - Los Angeles - 1\t\t\n', 'uswd\t\t\t\t\tUSA - Washington DC\t\t\n', 'uswd2\t\t\t\t\tUSA - Washington DC - 2\t\t\n', 'usse\t\t\t\t\tUSA - Seattle\t\t\t\n', 'usho\t\t\t\t\tUSA - Hollywood\t\t\t\n', 'ussf\t\t\t\t\tUSA - San Francisco\t\t\n', 'usch\t\t\t\t\tUSA - Chicago\t\t\t\n', 'usnj1\t\t\t\t\tUSA - New Jersey - 1\t\t\n', 'usnj2\t\t\t\t\tUSA - New Jersey - 2\t\t\n', 'usnj3\t\t\t\t\tUSA - New Jersey - 3\t\t\n', 'usda\t\t\t\t\tUSA - Dallas\t\t\t\n', 'usda2\t\t\t\t\tUSA - Dallas - 2\t\t\n', 'usat\t\t\t\t\tUSA - Atlanta\t\t\t\n', 'usmi\t\t\t\t\tUSA - Miami\t\t\t\n', 'usta1\t\t\t\t\tUSA - Tampa - 1\t\t\t\n', 'uslv\t\t\t\t\tUSA - Las Vegas\t\t\t\n', 'tw1\tTaiwan (TW)\t\t\tTaiwan - 1\t\t\tY\n', 'tw3\t\t\t\t\tTaiwan - 3\t\t\t\n', 'sgju\tSingapore (SG)\t\t\tSingapore - Jurong\t\tY\n', 'sgcb\t\t\t\t\tSingapore - CBD\t\t\tY\n', 'sgmb\t\t\t\t\tSingapore - Marina Bay\t\t\n', 'ukbe\tUnited Kingdom (GB)\t\tUK - Berkshire\t\t\tY\n', 'ukbe2\t\t\t\t\tUK - Berkshire - 2\t\tY\n', 'ukke\t\t\t\t\tUK - Kent\t\t\t\n', 'ukch\t\t\t\t\tUK - Chessington\t\t\n', 'uklo\t\t\t\t\tUK - London\t\t\t\n', 'ukel\t\t\t\t\tUK - East London\t\t\n', 'aume\tAustralia (AU)\t\t\tAustralia - Melbourne\t\tY\n', 'ausy2\t\t\t\t\tAustralia - Sydney - 2\t\t\n', 'ausy\t\t\t\t\tAustralia - Sydney\t\t\n', 'nlam\tNetherlands (NL)\t\tNetherlands - Amsterdam\t\tY\n', 'nlro\t\t\t\t\tNetherlands - Rotterdam\t\tY\n', 'nlam2\t\t\t\t\tNetherlands - Amsterdam - 2\t\n', 'camo2\tCanada (CA)\t\t\tCanada - Montreal - 2\t\tY\n', 'cato\t\t\t\t\tCanada - Toronto\t\t\n', 'cato2\t\t\t\t\tCanada - Toronto - 2\t\t\n', 'cava\t\t\t\t\tCanada - Vancouver\t\t\n',

解决方案

截取一部分数据:

In [95]: ss = r'''
   ....: 'ALIAS\tCOUNTRY\t\t\t\tLOCATION\t\t\tRECOMMENDED\n', '-----\t---------------\t\t\t------------------------------\t-----------\n', 'smart\tSmart Location\t\t\tHong Kong - 1\t\t\tY\n', 'hk1\tHong Kong (HK)\t\t\tHong Kong - 1\t\t\tY\n', 'hk2\t\t\t\t\tHong Kong - 2\t\t\tY\n', 'hk3\t\t\t\t\tHong Kong - 3\t\t\t\n', 'jpto1\tJapan (JP)\t\t\tJapan - Tokyo - 1\t\tY\n', 'jpto2\t\t\t\t\tJapan - Tokyo - 2\t\t\n', 'usla\tUnited States (US)\t\tUSA - Los Angeles\t\tY\n', 'usny\t\t\t\t\tUSA - New York\t\t\t\n', 'usny2\t\t\t\t\tUSA - New York - 2\t\t\n', 'usla3\t\t\t\t\tUSA - Los Angeles - 3\t\tY\n', 'ussc\t\t\t\t\tUSA - Santa Clara\t\tY\n', 'usde\t\t\t\t\tUSA - Denver\t\t\tY\n', 'ussj\t\t\t\t\tUSA - San Jose\t\t\tY\n', 'usla2\t\t\t\t\tUSA - Los Angeles - 2\t\tY\n', 'usla1\t\t\t\t\tUSA - Los Angeles - 1\t\t\n', 'uswd\t\t\t\t\tUSA - Washington DC\t\t\n', 'uswd2\t\t\t\t\tUSA - Washington DC - 2\t\t\n', 'usse\t\t\t\t\tUSA - Seattle\t\t\t\n', 'usho\t\t\t\t\tUSA - Hollywood\t\t\t\n', 'ussf\t\t\t\t\tUSA - San Francisco\t\t\n', 'usch\t\t\t\t\tUSA - Chicago\t\t\t\n', 'usnj1\t\t\t\t\tUSA - New Jersey - 1\t\t\n', 'usnj2\t\t\t\t\tUSA - New Jersey - 2\t\t\n', '''

In [96]: re.findall(r'\\t([\w ]+ )(- [\w ]+)( - \w+)?\\t', ss)
Out[96]: 
[('Hong Kong ', '- 1', ''),
 ('Hong Kong ', '- 1', ''),
 ('Hong Kong ', '- 2', ''),
 ('Hong Kong ', '- 3', ''),
 ('Japan ', '- Tokyo', ' - 1'),
 ('Japan ', '- Tokyo', ' - 2'),
 ('USA ', '- Los Angeles', ''),
 ('USA ', '- New York', ''),
 ('USA ', '- New York', ' - 2'),
 ('USA ', '- Los Angeles', ' - 3'),
 ('USA ', '- Santa Clara', ''),
 ('USA ', '- Denver', ''),
 ('USA ', '- San Jose', ''),
 ('USA ', '- Los Angeles', ' - 2'),
 ('USA ', '- Los Angeles', ' - 1'),
 ('USA ', '- Washington DC', ''),
 ('USA ', '- Washington DC', ' - 2'),
 ('USA ', '- Seattle', ''),
 ('USA ', '- Hollywood', ''),
 ('USA ', '- San Francisco', ''),
 ('USA ', '- Chicago', ''),
 ('USA ', '- New Jersey', ' - 1'),
 ('USA ', '- New Jersey', ' - 2')]

这篇关于python正则表达式难题。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆