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*([^(]*)
^^^ ^^^