【发布时间】:2019-08-17 02:43:27
【问题描述】:
我有一个来自 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 个字符串,直到我想要的字符串。
【问题讨论】:
-
除了文本长度之外,你还有一些提取文本的逻辑吗?
3和6的文本长度是一个非常广泛的标准,也可能与其他标记匹配。 -
如果我正确理解您想要的内容,您需要在搜索中添加字边界
\b。像这样使用它:\b[a-zA-Z]{3}\b用于 3 个字符串。来自stackoverflow.com/questions/29689516/… -
如果您想匹配示例数据中的 3 个或 6 个大写字符,您可以使用带有交替的单词边界
\b(?:[A-Z]{3}|[A-Z]{6})\bexample
标签: python regex python-2.7