Regex返回除多组括号中的文本以外的所有文本
我正在寻找正则表达式,它允许我提取名称并将所有内容放在括号内。下面是示例数据 文本字符串:Regex返回除多组括号中的文本以外的所有文本,regex,Regex,我正在寻找正则表达式,它允许我提取名称并将所有内容放在括号内。下面是示例数据 文本字符串: John (Juan, Jonathan, Jon, Jonny) James Doe (born on January 1, 1900) 期望输出: John James Doe 此外,在某些情况下,文本字符串可能类似于: John (Juan, Jonathan, Jon, Jonny) James Doe (born on January 1, 1900) (Canada) 在这种情况下,我们
John (Juan, Jonathan, Jon, Jonny) James Doe (born on January 1, 1900)
期望输出:
John James Doe
此外,在某些情况下,文本字符串可能类似于:
John (Juan, Jonathan, Jon, Jonny) James Doe (born on January 1, 1900) (Canada)
在这种情况下,我们仍然希望返回:
John James Doe
我尝试了来自的解决方案,但仍然得到错误的输出:
John James Doe (born on January 1, 1900)
仅使用正则表达式,不使用任何替换函数:
[^\S]*(\w*)(?:\S*)(?:\([^()]*\)*
编辑:
(?:[^\S]*(\w*)(?:\S*)(?:\S*\([^()]*\)\S*)*)
我已经做了最后一个版本来纠正上次比赛中的一个问题
您可以比较V4和V6,发现结果有点不同
现在可以了。在我测试时,从链接的线程运行解决方案可以处理多个括号。也许你需要澄清为什么这不起作用?这不是他要求的回报。它仅在父项之间选择单词。他给出的答案不合适。这就是他发布它的原因。@jarcobi889当我从链接线程运行解决方案时,返回的字符串是
johnjamesdoe(生于1900年1月1日)
你在运行这个吗text=“John(Juan,Jonathan,Jon,Jonny)James Doe(生于1900年1月1日)(加拿大)”
re.sub(r'\([^)]*\),'',text)
'John James Doe'
?这是我使用链接问题得到的输出。有没有办法删除返回字符串中John和James之间的额外空格?没有,现在结果是JohnJamesDoe
。在此之前是约翰·詹姆斯·多伊(约翰和詹姆斯之间的两个空格)。我需要的结果是约翰·詹姆斯·多伊