搜尋

首頁  >  問答  >  主體

Python正则表达式匹配问题

待处理的部分文本(为方便阅读,已做换行处理,实际文本没有)如下:

1

2

3

4

5

6

7

var station_names ='@bjb|北京北|VAP|beijingbei|bjb|0

@bjd|北京东|BOP|beijingdong|bjd|1

@bji|北京|BJP|beijing|bj|2

@bjn|北京南|VNP|beijingnan|bjn|3

@bjx|北京西|BXP|beijingxi|bjx|4

@gzn|广州南|IZQ|guangzhounan|gzn|5

@cqb|重庆北|CUW|chongqingbei|cqb|

最开始的代码是这样的:

1

2

3

4

r=requests.get(url,verify=False)

stations=re.findall(r'([A-Z]+)|([a-z]+)',r.text)

stations=dict(stations)

stations=dict(zip(stations.values(),stations.keys()))

得到的输出如下:

1

2

3

4

5

6

{   'acheng''ACB',

    'aershan''ART',

    'aershanbei''ARX',

    'aihe''AHP',

    'aijiacun''AJJ',

}

现在在Python中,想进一步,用正则表达式提取出其中的中文站名和对应的英文大写缩写。尝试了多次都失败了。。。请问要怎么写。。。也就是说想要输出的是:

1

2

3

4

5

6

{   '阿城''ACB',

    '阿尔山''ART',

    '阿尔山北''ARX',

    '艾河''AHP',

    '艾家村''AJJ',

}


高洛峰高洛峰2994 天前1144

全部回覆(1)我來回復

  • 三叔

    三叔2016-10-27 10:09:13

    12306 站点信息 ,Python3

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    station_names ='@bjb|北京北|VAP|beijingbei|bjb|0@bjd|北京东|BOP|beijingdong|bjd|1@bji|北京|BJP|beijing|bj|2@bjn|北京南|VNP|beijingnan|bjn|3@bjx|北京西|BXP|beijingxi|bjx|4@gzn|广州南|IZQ|guangzhounan|gzn|5@cqb|重庆北|CUW|chongqingbei|cqb|6@cqi|重庆|CQW|chongqing|cq|7@cqn|重庆南|CRW|chongqingnan|cqn|8@gzd|广州东|GGQ|guangzhoudong|gzd|9@sha|上海|SHH|shanghai|sh|10@shn|上海南|SNH|shanghainan|shn|11@shq|上海虹桥|AOH|shanghaihongqiao|shhq|12@shx|上海西|SXH|shanghaixi|shx|13@tjb|天津北|TBP|tianjinbei|tjb|14@tji|天津|TJP|tianjin|tj|15@tjn|天津南|TIP|tianjinnan|tjn|16'

     

    import re, pprint as pp

    '''

    @拼音缩写三位|站点名称|编码|拼音|拼音缩写|序号

    '''

    ptn=re.compile(r'@[^|]+'   #拼音缩写三位

                   r'\|([^|]+)'#站点名称

                   r'\|([^|]+)'#编码

                   r'\|[^|]+'  #拼音

                   r'\|[^|]+'  #拼音缩写

                   r'\|[^@]+'  #序号

                   ,re.X)

                    

    sname=dict(ptn.findall(station_names))

    pp.pprint(sname)

    效果:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    {'上海''SHH',

     '上海南''SNH',

     '上海虹桥''AOH',

     '上海西''SXH',

     '北京''BJP',

     '北京东''BOP',

     '北京北''VAP',

     '北京南''VNP',

     '北京西''BXP',

     '天津''TJP',

     '天津北''TBP',

     '天津南''TIP',

     '广州东''GGQ',

     '广州南''IZQ',

     '重庆''CQW',

     '重庆北''CUW',

     '重庆南''CRW'}


    回覆
    0
  • 取消回覆