pyton 同一个正则表达式为什么在python里运行的结果只有中文?

图片描述

图片描述

为什么我用同一个正则在网页上能匹配上正确的结果,但在程序里确只能跑出中文,我把2段分开跑都能出结果的,合在一起缺只有中文

阅读 2.1k
2 个回答

去掉了一对分组括号

import re

data = '''
北京(BJS)
上海(SHA)
'''

pattern = re.compile('[\u4e00-\u9fa5]+\([A-Z]{3}\)')
result = pattern.findall(data)
print(result)

结果:
['北京(BJS)', '上海(SHA)']

import re
text = '{"热门":[{display:"北京",data:"Beijing|北京(BJS)|1|BJS"},{display:"上海",data:"Shanghai|上海(SHA)|2|SHA"}]}'
find = re.findall(r'display:"(.?)".?([A-Z]{3})',text)
print(find)

注意没显示的星号

运行结果:
[('北京', 'BJS'), ('上海', 'SHA')]
图片描述

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题