python - 正则表达式只提取一个单词
问题描述
我有一个像这样的复杂文件:
“start_nm”:“波士顿”,“bus_num”:“1”,“bus_num”:“2”,“dest_nm”:“纽约”
我想得到Boston,1,2,newyork
。问题是:有些城市有1,2,3,5
,有些有1,2
。1)我怎样才能在一个简单的语句中得到它们,而不是没有多个 if 语句?2)由于数量bus_num
是动态的,我该如何保持循环?
match1 = re.search('start_nm\":\"([^"]*)', line)
if match1:
print ("The start is :"+match1.group(1))
match2= re.search('bus_num\":\"(\d+)', line)
if match1:
print ("The start is :"+match1.group(1))
我能够提取它们,但寻找一种简单的方法来: 1)除了这个大的 if 任何包的所有语句的条件。2)当长度是动态的时,bus_num
我怎么能有循环?
解决方案
快速而肮脏的方法是查找:"
和 next之间的所有内容"
,如下所示:
>>> line = '> "start_nm":"BOSTON","bus_num":"1", "bus_num":"2","dest_nm":"NEW YorK"'
>>> re.findall(r':"(.*?)"', line)
['BOSTON', '1', '2', 'NEW YorK']
推荐阅读
- java - JavaFX - 通过按钮编辑树视图节点文本
- mysql - 为什么我从这个 SQL 查询中得到错误的结果?
- java - 计算模型照明的法线导致模型不再渲染
- apache-spark - 2个火花应用程序不能使用相同的组ID从相同的Kafka主题并行消费
- xslt - 将 XSLT 中的字母数字与破折号组合
- xamarin - 如何通过默认系统 pdf 应用程序中的 FileProvider 在 Xamarin.Android 中打开内部创建的 pdf?
- c - 使用带有 openssl 的 libc 时修复动态链接器错误
- excel - ActiveSheet.PasteSpecial Paste:=xlPasteValues 不起作用
- python-3.x - python中的求和列表
- c# - 如何使用 C# 在列有日期的情况下将多行插入 MySql?