【发布时间】:2021-02-23 10:51:42
【问题描述】:
我的字符串如下所示(每一行都是一个示例字符串):
史密斯,安娜(剑桥大学); Doe, Jane(维也纳大学(奥地利)); Doe, John(东京大学;麻省理工学院) 穆勒,汉斯(FU柏林(德国));施密德,朱莉娅(); Doe, John(加州理工学院); Boe, Jane(维也纳工业大学) Kim, Lee(纳扎尔巴耶夫大学(哈萨克斯坦);牛津大学)换句话说,该模式包含Surname, Name (Affiliation);(如果没有其他人跟随,则没有;),其中括号可以可选地嵌套( () )或包含;或为空()。
我想提取每个名字和从属关系,如:
史密斯,安娜(剑桥大学) Doe, Jane(维也纳大学(奥地利)) Doe, John(东京大学;麻省理工学院) 汉斯·穆勒 (FU Berlin (Germany)) 施密德,朱莉娅 () 能源部,约翰(加州理工学院) Boe, Jane(维也纳工业大学) Kim, Lee(纳扎尔巴耶夫大学(哈萨克斯坦);牛津大学)执行此操作的正确正则表达式是什么?
我对@987654327@ 的尝试效果不佳...
【问题讨论】:
-
如果只能有一个嵌套的括号级别,您可以使用类似
\w+,\s*\w+\s*\([^()]*(?:\([^()]*\)[^()]*)*\);?(demo) -
太好了,谢谢@WiktorStribiżew!你想把它作为一个完整的回复发布,以便我接受吗?
标签: regex text extract regex-lookarounds