Regex 如果正则表达式中存在以“(”开头的子字符串,如何排除该子字符串?

Regex 如果正则表达式中存在以“(”开头的子字符串,如何排除该子字符串?,regex,Regex,正则表达式: 测试字符串: ([A-Za-z]+),\s([A-Za-z]+)\.\s(.*)[\s\(|\b] 正则表达式问题截图: 预期: 雅克·希思作为第三组的俘获者出现在第一线 莱纳作为第二线的第3捕获组 实际: Jacques Heath Lily可能会在第一线的第3组中脱皮 莱纳作为第二线的第3捕获组 编辑: 通过修改答案得到了我所需要的: 见: 请注意,.[\s |\b]匹配并捕获任何0+字符,尽可能多,直到最后一个空格、|或一个退格字符。[\s |\b]是一个正字符类,其中\b

正则表达式:

测试字符串:

([A-Za-z]+),\s([A-Za-z]+)\.\s(.*)[\s\(|\b]
正则表达式问题截图:

预期:

雅克·希思作为第三组的俘获者出现在第一线 莱纳作为第二线的第3捕获组 实际:

Jacques Heath Lily可能会在第一线的第3组中脱皮 莱纳作为第二线的第3捕获组 编辑:

通过修改答案得到了我所需要的:

见:

请注意,.[\s |\b]匹配并捕获任何0+字符,尽可能多,直到最后一个空格、|或一个退格字符。[\s |\b]是一个正字符类,其中\b不是单词边界,它在那里失去其零宽度含义,并且|被解析为文字管道字符

您可以使用模式[^]*或[^]+:

要解释可变数量的空白字符,可以使用

([A-Za-z]+),\s([A-Za-z]+)\.\s([^(]*)
                             ^^^^^^^

其中\s*匹配0个或多个空格字符。

试试[A-Za-z]+,\s[A-Za-z]+.\s.*:\\\$或[A-Za-z]+,\s[A-Za-z]+\.\s[^]*,请参阅.obdontdotnothait@WiktorStribiżew Bingo,正确!将其添加为答案,以便我可以将其标记为正确。@naushadhukoor我已经说过了。
([A-Za-z]+)\,\s*([A-Za-z]+)\.\s*(.*?)(?:\s*\(|$)
([A-Za-z]+),\s([A-Za-z]+)\.\s([^(]*)
                             ^^^^^^^
([A-Za-z]+),\s*([A-Za-z]+)\.\s*([^(]*)
            ^^^             ^^^