如何用正则表达式提取所有符合「介于两个特定字符串a和b之间」这一条件的内容?

例如有这样一段文本(无标点符号):

请问您的姓名是什么姓名张三对吗

现在需要提取姓名,即"张三"。需要提取的姓名,位于"姓名"和"对"这两个固定的字符串之间,故使用以下正则表达式规则:

(?<=姓名)(.*?)(?=对)

提取结果只有一条,如下:

是什么姓名张三

请问怎样的正则表达式可以完整地返回以下两个结果:

是什么姓名张三

张三

完整地返回以下两个结果:
(?<=姓名)(.*?((?<=姓名).*?)?)(?=对)/)
第一个子匹配结果:是什么姓名张三
第二个子匹配结果:张三

如果要直接获取“张三”
(?<=姓名)((?:(?!姓名).)*?)(?=对)

不用这么复杂把!你这里主要是想搞清楚一个贪婪和非贪婪匹配的区别。
我理解贪婪程序是从姓名开始找,找到第一个对结束。然后再往后找第二个对。所以我认为 (?<=姓名)(.*?)(?=对) 非贪婪匹配就是是什么姓名张三
第一个匹配我就不说了。我觉得第二个匹配这么写你可能好理解一些。
re.search(r'(?<=姓名).*(?<=姓名)(.*)(?=对)',youstr)
re.search(r'(?<=姓名)(.{2,4})(?=对)'youstr)