的第四列
我有此形式的字符串:
"""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次,但您没有捕获它
([^;]*);
然后,您获得了与其内容匹配(不是半隆(