Это довольно надежно, но не будет обрабатывать имя с круглыми скобками. то есть он ожидает, что первый (
будет разделен после имени. Тем не менее, вы можете узнать, что что-то не так, заметив, что в этом бизнесе есть \).*\(
.
data = """
David Smith (Best Pool and Spa Supplies / 07438473784)
David Smith2 (Best Pool/Spa Supplies / 07438473784)
Bessy McCarthur Jone (Dog Supplies / 0438-343522)
Bessy McCarthur Jone2 (Dog (and cat) Supplies / 0438-343522)
Bessy (Bess, fails) McCarthur Jone3 (Dog Supplies / 0438-343522)
"""
lines = [line.strip() for line in data.splitlines() if line.strip()]
for line in lines:
name,rest = line.split("(",1)
name = name.strip()
phone = rest.rsplit("/")[1].replace(")","").strip()
biz = rest.rsplit("/",1)[0].strip()
print("\n "+line)
print(" =>name:%s: phone:%s:biz:%s:" % (name, phone,biz))
выход:
David Smith (Best Pool and Spa Supplies / 07438473784)
=>name:David Smith: phone:07438473784:biz:Best Pool and Spa Supplies:
David Smith2 (Best Pool/Spa Supplies / 07438473784)
=>name:David Smith2: phone:Spa Supplies:biz:Best Pool/Spa Supplies:
Bessy McCarthur Jone (Dog Supplies / 0438-343522)
=>name:Bessy McCarthur Jone: phone:0438-343522:biz:Dog Supplies:
Bessy McCarthur Jone2 (Dog (and cat) Supplies / 0438-343522)
=>name:Bessy McCarthur Jone2: phone:0438-343522:biz:Dog (and cat) Supplies:
Bessy (Bess, fails) McCarthur Jone3 (Dog Supplies / 0438-343522)
=>name:Bessy: phone:0438-343522:biz:Bess, fails) McCarthur Jone3 (Dog Supplies: