正则表达式提取名称



我有此形式的字符串:

"""00.000000 00.000000; X-XX000-0000-0; France; Paris; Street 12a;   
00.000000 00.000000; X-XX000-0000-0; Spain; Barcelona; Street 123;"""

我想在字符串上方获取特定的数据towns。我如何获取此数据??

如果您只想在给定的例子中获得城市,则可以使用正面的lookahead:

b[^;]+(?=;[^;]+;$)

说明

 b#字边界[^;] #不匹配;一次或多次(?=#积极的lookahead断言,以下是什么   ;#匹配分号   [^;] #不匹配;一次或多次   ;# 匹配 ;   $#字符串的比赛结束(#Close LookAhead

假设Python(三个引号(:

string = """00.000000 00.000000; X-XX000-0000-0; France; Paris; Street 12a;   
00.000000 00.000000; X-XX000-0000-0; Spain; Barcelona; Street 123;"""
towns = [part[3] for line in string.split("n") for part in [line.split("; ")]]
print(towns)

产生

['Paris', 'Barcelona']

实际上不需要regex

如果您在第4个字段上有城市,则可以使用此模式匹配它:

 /(?:[^;]*;){3}([^;]*);/

请参阅演示

[^;]*;您发现一个由非肺血管组成的字段,并以半血管结尾

(?:...){3}您发现了3次,但您没有捕获它

([^;]*);然后,您获得了与其内容匹配(不是半隆(

的第四列

最新更新