你好,世界! 我遇到了正则表达式的麻烦。我正在使用一个HTTP API(用于搜索意大利火车)来提供这些信息(例如:
10911 - SESTO S. GIOVANNI|10911-S01325
格式:
TRAIN_NUMBER - STATION|TRAIN_NUMBER - STATION_CODE
在很少有人请求之前,一切都没关系,因为我只需要一个信息,“s0132”。但当用户开始增长时,我发现可能有两列火车的编号相同。例如,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,对吗?我从没用过正则表达式,所以我不知道该怎么办。我在Google和Wiki/docs上搜索过。但是我没有找到解决这个问题的方法。显然,regex表达式必须适用于所有情况,例如:
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
实际上,你不需要正则表达式。不过,你可以使用它们。你的信息中有一个相当简单的模式:
让我们看看如果你这样做会发生什么
所以现在你有了你想要的第一部分。第二部分可以用类似的方法来修复,让我们看看
所以你可以
你就完了!你知道吗
如果你把所有这些结合起来,你应该得到你的答案。你知道吗
不是真的。你知道吗
我认为一个更好的解决方案是将每一行解析成标记,并将它们分配给可感知的变量。您需要一个解决方案,它不太关注字符串原语和regex,而更关注对象和封装。你知道吗
我会设计一个restapi,让我可以轻松地查询trains并将响应作为JSON对象返回。你知道吗
首先,你必须convert your ^{}s to ^{} objects 。你知道吗
通过您提供的示例:
假设格式为:
我们不需要任何正则表达式,只需按分隔符拆分条目:
然后看看结果:
如果您不想重复输入(如果可能的话),我建议您使用sets而不是列表。你知道吗
查看API文档,您将取决于它提供的条目的格式。你知道吗
相关问题 更多 >
编程相关推荐