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

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

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

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

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

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

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

是什么姓名张三

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

是什么姓名张三

张三

  • 写回答

2条回答 默认 最新

  • 天际的海浪 2019-02-28 17:00
    关注

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

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 java如何提取出pdf里的文字?
  • ¥100 求三轴之间相互配合画圆以及直线的算法
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 自己瞎改改,结果现在又运行不了了
  • ¥15 链式存储应该如何解决