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

标签 python regex file python-3.x

我正在开发一个 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/

相关文章:

python - reStructuredText:如何在表格中使用续行?

objective-c - 将日志附加到文件中

c++ - 查找并替换文本文件中的字符串并输出到另一个文件

php - 实时 API 调用的数据库模式建议

python - 在 OpenCV、Python 中使用关闭 "X"按钮关闭视频窗口

python - 获得最佳解决方案之后的下一个最佳解决方案

python - 在 Django 中创建持久数据对象

Regex\x96 类似字符

regex - Excel中的反向字符串搜索

regex -/m 修饰符的 perl 正则表达式意外行为