Pyd*_*man 5 python regex split newline python-2.7
通常会显示Google地图结果:

'\n113 W 5th St\nEureka, MO, United States\n(636) 938-9310\n'
Run Code Online (Sandbox Code Playgroud)
另一种变化:

'Clayton Village Shopping Center, 14856 Clayton Rd\nChesterfield, MO, United States\n(636) 227-2844'
Run Code Online (Sandbox Code Playgroud)
而另一个:

'Wildwood, MO\nUnited States\n(636) 458-7707'
Run Code Online (Sandbox Code Playgroud)
请注意\n字符位置的变化.
我想要提取前X行作为地址,最后一行作为电话号码.像(.*\n.*)\n(.*)第一个例子那样的正则表达式就足够了,但是对于其他两个例子而言则不够.我唯一可以依赖的是电话号码将在表格中(ddd) ddd-dddd.
我认为一个允许每一种可能变化的正则表达式很难得到.是否可以使用split(),但保持我们分裂的角色?那么在这个例子中,拆分"(",分割出地址和电话号码,但是在电话号码中保留这个字符?我可以连接到"("后面split("(")[1],但是有一个更简洁的方式吗?
不要使用正则表达式.只需将字符串拆分为'\n'.最后一个索引是电话号码,其他索引是地址.
lines = inputString.split('\n')
phone = lines[-1] if lines[-1].match(REGEX_PHONE_US) else None
address = '\n'.join(lines[:-1]) if phone else inputString
Run Code Online (Sandbox Code Playgroud)
Python有很多很棒的内置工具,用于以更人性化的方式操作字符串......而不是正则表达式允许的.