gpt4 book ai didi

Python 正则表达式匹配搜索字符串的意外部分

转载 作者:太空宇宙 更新时间:2023-11-04 03:42:11 25 4
gpt4 key购买 nike

我正在尝试使用正则表达式(Python 2.7;IPython QTConsole)解析页面。该页面是从我使用 urllib2

抓取的 Web 目录中提取的 .txt
>>> import re
>>> Z = '[A-Z]{2}Z[0-9]{3}.*?\\$\\$'
>>> snippet = re.search(Z, page, re.DOTALL)
>>> snippet = snippet.group() # Only including the first part for brevity.
'PZZ570-122200-\nPOINT ARENA TO POINT REYES 10 TO 60 NM OFFSHORE-\n249 AM PDT FRI SEP 12 2014\n.TODAY...SW WINDS 5 KT. WIND WAVES 2 FT OR LESS.\nNW SWELL 3 TO 5 FT AT 12 SECONDS. PATCHY FOG IN THE MORNING.\n.TONIGHT...W WINDS 10 KT. WIND WAVES 2 FT OR LESS.'

我想搜索换行符后跟一个句点。我想得到第一次和第二次出现如下。目标是解析第一个和第二个(以及后续的)\n\. 分隔符之间的信息。我知道我可以环顾四周,但我很难让前瞻变得贪婪。此外,我无法弄清楚为什么以下内容不起作用。

>>> pat = r"\n\."
>>> s = re.search(pat, snippet.group(), re.DOTALL)
>>> e = re.search(pat, snippet.group()[s.end():], re.DOTALL)

上面的 s 有效,但是对于 e 我得到了一个奇怪的结果。

>>> [s.group(), s.start(), e.group(), e.end()]
['\n.', 90, '\n.', 110]

>>> snippet.group()[s.start():e.end()]
'\n.TODAY...SW WINDS 5'

>>> snippet.group()[e.start():e.end()]
' 5'

我想 snippet.group() 中隐藏了一些格式?如果是这样,那么奇怪的是,有些换行符是显式的,就好像 snippet.group() 是原始的,而其他的是隐藏的。为什么 e.group()snippet.group()[e.start():e.end()] 不同?

如果这个问题已经得到解决,我深表歉意。我找不到任何相关的东西。

非常感谢。

最佳答案

要在 python 中拆分字符串,使用 str.split() 可能更容易或 re.split() .

例如:

"1\n.2\n.3".split("\n.")

关于Python 正则表达式匹配搜索字符串的意外部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25823119/

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