regex 如何在特定点结束str.findall()?

wgeznvg7  于 2023-03-31  发布在  其他
关注(0)|答案(1)|浏览(88)

有问题的色谱柱

大家好,学习正则表达式并试图解决这个问题。基本上,我希望将两个地址分开,以便我可以将它们作为单独的地址添加到 Dataframe 中。

for column in maindf_clean:
    address1=maindf_clean['Line 1: address Line 2: address2'].str.findall('(?<=:).*')
    print(address1)
    print('-----')

输出:[ 3461 Bartillon Lane Line 2: Suite 26]
所以我设法删除了'Line 1:',但是,我不确定如何让它在这个例子中的单词lane之后停止匹配。
我已经成功地使用以下代码提取了第二个地址:

for column in maindf_clean:
    address2=maindf_clean['Line 1: address Line 2: address2'].str.findall('^.+:(.+)$')
    print(address2)
    print('-----')

输出:[ Suite 26]
所以我的问题是,有没有办法在第一个for循环中编辑我的str.findall,使其在第一个地址的结尾和单词'Line 2:'之间结束?

0mkxixxg

0mkxixxg1#

添加一个lookahead,使匹配在下一个Line或字符串的末尾停止。并使用非贪婪量词。

address1=maindf_clean['Line 1: address Line 2: address2'].str.findall(r'(?<=:).*?(?=\s+Line \d|\s+$)')

相关问题