gpt4 book ai didi

Python 正则表达式?我有麻烦了

转载 作者:太空宇宙 更新时间:2023-11-03 13:36:55 24 4
gpt4 key购买 nike

你好,世界!我遇到了正则表达式的麻烦。我正在使用一个 HTTP API(用于搜索意大利火车)给我这些信息(例如):

10911 - SESTO S. GIOVANNI|10911-S01325

格式:

TRAIN_NUMBER - STATION|TRAIN_NUMBER - STATION_CODE

直到请求很少,一切正常,因为我只需要一个信息,“S01325”。但是当用户开始增长时,我发现可能有两列火车具有相同的编号。例如,火车 612 可以有两个编号,事实上 API 给了我:

612 - TARANTO|612-S11465
612 - ASSO|612-N00079

当(使用 urllib.request 模块)我尝试阅读此内容时,我得到:

b'612 - TARANTO|612-S11465\n612 - ASSO|612-N00079\n'

我需要两个列表变量:

A = ['612 - TARANTO', '612 - ASSO'] #First regex expression
B = ['S11465', 'N00079'] #Second regex expression

我必须使用 REGEX,对吗?我从未使用过 REGEX,所以我不知道我必须做什么。我在 Google 和 Wiki(s)/文档上进行了搜索。但我没有找到 (404) 这个问题的解决方案。显然,正则表达式必须适用于所有情况,例如:

b'2097 - MILANO CENTRALE|2097-S01700\n'

给我:

A = ['2097 - MILANO CENTRALE']
B = ['S01700']

另一个例子:

b'123 - ROMA TERMINI|123-S01358\n123 - TREVIGLIO|123-S01703\n'

给我:

A = ['123 - ROMA TERMINI', '123 - TREVIGLIO']
B = ['S01358','S01703']

谢谢,非常感谢阅读。我希望我说得很清楚。祝你有美好的一天,马可附:Link to the italian docs

最佳答案

实际上,您不需要正则表达式。不过您可以使用它们。您的信息中有一个相当简单的模式:

<Train number> - <city>|<Train number>-<identifier>

那么让我们看看如果你这样做会发生什么

>>> '123 - ROMA TERMINI|123-S01358'.split('|', 1)
['123 - ROMA TERMINI', '123-S01358']

现在你已经有了你想要的第一部分。然后可以使用类似的东西修复第二部分,让我们看看

>>> '123-S01358'.split('-', 1)
['123', 'S01358']

所以你可以这样做

>>> '123-S01358'.split('-', 1)[-1]
'S01358'

大功告成!

如果将所有这些结合在一起,您应该会得到答案。

关于Python 正则表达式?我有麻烦了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38291614/

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