【发布时间】:2019-09-24 13:26:25
【问题描述】:
我想使用一个正则表达式来搜索一个字符串,但在返回的(或匹配的)字符串中不包含正则表达式的一部分。
我想搜索并返回“CLD:”之后发生的内容,但不希望“CLD:”包含在返回的(或匹配的)字符串中。
cloudRegex = re.compile(r'CLD:\s.*')
从下面的文字中我希望返回 FEW040。
FF YBRFYMYX YMMCYMYX YSRFYMYX
061702 YBBNITAS
ATIS YBBN H 061702
RWY: 14
OPR INFO: RUNWAY 19 LEFT AVAILABLE AS PUR NOTAM. MULTIPLE
TAXIWAY CLOSURES REFER NOTAMS.
WND: 200/6
VIS: GREATER THAN 10 KM
CLD: FEW040
+ TMP: 13
+ QNH: 1016
【问题讨论】:
-
感谢维克托。与+匹配一个或多个。如果 the 是“CLD:”之后的第二个单词,这也可以吗?例如,FEW040 SCT050 将从 CLD 返回:FEW040 SCT050。
-
我决定删除我的评论,因为我发现了一个专门解决同一问题的线程,即在特定关键字之后获取正则表达式匹配的一部分。 ideone.com/pxpeJN 应该返回之后的任何文本
CLD: -
仅供参考,我经常看到这个。没有必要在比赛中不包括 CLD。除非你能想到任何好的理由。没有什么说您必须实际使用组 0,它是 match 对象默认返回。只需获得第 1 组或第 2 组,或任何您想要的。使用 Python,除了查看断言之外,您别无选择。这一次,
CLD:\s是 Python 支持的固定长度。 90% 的时间它将是可变长度,这是 Python 不支持的。阅读您的标题的人可能会得到希望,但这不是希望,它只是 DOOM