【发布时间】:2021-04-14 11:28:30
【问题描述】:
我有一长串不同的字符串,它们都包含有关全球特定端口的一些信息。但是,每个端口名称都是不同的,并且包含在字符串中的不同位置。我想要做的是遍历所有字符串,找到单词'Port',然后在'Port' 之后存储接下来的两个子字符串。例如:
'Strong winds may disrupt operations at the Port of Rotterdam on July 5'
我找到了'Port',现在希望将'of Rotterdam' 作为一个完整的字符串添加到'Port',例如'Port of Rotterdam'。我认为可以通过parts = my_str.split(' ') 来分割每个较长的字符串。那么:
for i in parts:
if i == 'Port':
new_str = i
但是,我不确定如何添加接下来的两个子字符串。想法?
【问题讨论】:
-
它实际上总是两个子字符串吗?
-
不,不一定。但我认为大多数时候应该是这样。我不确定我将如何控制它不是的情况。
-
您还可以匹配端口,后跟一个“单词”,也可以选择第二个,例如
\bPort\s+\S+(?:\s+\S+)?regex101.com/r/OatSlU/1 -
我已经进一步更新了我的答案,并使用了更好的正则表达式解决方案。
标签: python python-3.x string