gpt4 book ai didi

python - 谁能明白为什么我的 python 正则表达式搜索只输出 "0"s?

转载 作者:行者123 更新时间:2023-11-30 23:20:15 25 4
gpt4 key购买 nike

我正在开发一个 python 程序来提取 kml 文件中的所有标签。

    import re

KML = open('NYC_Tri-State_Area.kml','r')

NYC_Coords = open('NYC_Coords.txt', 'w')

coords = re.findall(r'<coordinates>+(.)+<\/coordinates>', KML.read())

for coord in coords:
NYC_Coords.write(str(coord) + "\n")

KML.close()
NYC_Coords.close()

我在 RegExr 内的文件上测试了正则表达式并且工作正常。

这是我正在阅读的 kml 文件的一个小样本:http://puu.sh/bhayn/2e233a1033.png

输出文件中每一行都包含一个 0,除了最后一行为空。

最佳答案

看来您已将 + 运算符放置在分组之外。

因此,使用 >+ 可以在“一次或多次”之间字面匹配 > ,并使用点 . 与重复捕获结合使用group (.)+ 仅捕获最后一次迭代,在本例中,每个匹配结果为 0

删除开头的+运算符,并将放置在组外的运算符移至组内。

coords = re.findall(r'<coordinates>(.+?)</coordinates>', KML.read())

注意:使用 +? 来防止贪婪,您可能还想在此处使用 s (dotall) 修饰符。

关于python - 谁能明白为什么我的 python 正则表达式搜索只输出 "0"s?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25610961/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com