我有一个来自NWS公告的字符串:
LTUS41 KCAR 141558 AAD TMLB Forecast for the National Parks
KHNX 141001 RECHNX Weather Service San Joaquin Valley
我的目标是用正则表达式提取几个字段。在第一个字符串中我想要“AAD”,在第二个字符串中我想要“RECHNX”。我试过:
( )\w{3} #for the first string
以及
\w{6} #for the 2nd string
但是这些找到了所有3个和6个字符的字符串,这些字符串指向我想要的字符串。你知道吗
由于要提取的子字符串是一个跟在数字后面的单词,用空格隔开,因此可以将
re.search
与以下regex一起使用(假定您的输入存储在s
):假设要提取的字段始终为大写字母,前面有6位数字和一个空格,则此正则表达式将完成以下操作:
演示:https://regex101.com/r/dsDHTs/1
编辑:如果要匹配最多两个字母数字大写单词,前面有6位数字,可以使用:
演示:https://regex101.com/r/dsDHTs/5
如果您有有效字段的特定列表,也可以简单地使用:
https://regex101.com/r/dsDHTs/3
要从每行读取第一组单词字符,可以使用如下模式
(\w+) (\w+) (\w+) (\w+)
。你知道吗然后,从第一行读取第4组和从第二行读取第3组。你知道吗
看下面的程序。它从每个源行打印四个组:
结果是:
相关问题 更多 >
编程相关推荐