Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/221.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex返回除多组括号中的文本以外的所有文本_Regex - Fatal编程技术网

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
。在此之前是约翰·詹姆斯·多伊(约翰和詹姆斯之间的两个空格)。我需要的结果是
约翰·詹姆斯·多伊