Xeon AMG
2019-02-28 16:13
采纳率: 100%
浏览 9.0k
已采纳

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

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

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

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

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

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

是什么姓名张三

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

是什么姓名张三

张三

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • 天际的海浪 2019-02-28 17:00
    已采纳

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

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

    评论
    解决 无用
    打赏 举报
查看更多回答(1条)

相关推荐 更多相似问题