You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

请求编写正则表达式提取'approv'类关键词后的首个词汇

提取审批人名称的正则解决方案

看来你是想从文本里抓出审批人的名字,但之前的正则没踩对路子,我来给你调整一下。

首先,先给你能直接用的正则:

(?i)\bapprov\w*\b\W+(\w+)

为什么这个能work?我拆开来给你解释:

  • (?i):开启不区分大小写模式,这样不管是approved、Approver还是approval都能匹配到,不用写一堆大小写组合。
  • \bapprov\w*\b:匹配以approv开头的完整单词(比如approved、approver、approval),\b是单词边界,防止匹配到包含approv的其他长单词,\w*用来匹配approv后面的任意字母。
  • \W+:匹配关键词后面的非单词字符(空格、冒号、破折号这些分隔符),确保跳过这些符号,直接定位到后面的名字。
  • (\w+):捕获组,用来提取后面的第一个单词(也就是审批人的名字),\w+匹配任意长度的字母数字组合,不会像你之前的正则那样限制长度。

对比一下你之前的问题:

你写的\bApprov*\b([\w][A-Za-z]{4-7})有几个问题:

  1. Approv*这里的*是重复前面的v,不是匹配任意字符,所以只能匹配Appro、Approv、Approvv这类,匹配不到approved或者approval。
  2. [\w][A-Za-z]{4-7}限定了名字的长度在5-8个字符之间,但你的示例里spiderman是8个字母刚好,要是遇到更长或更短的名字就会匹配失败,完全没必要加这个限制。
  3. 没有处理关键词和名字之间的分隔符(比如冒号:、破折号-),导致正则可能直接卡在这些符号上,抓不到名字。

测试你的示例数据:

用这个正则跑你的4行数据,能精准抓到:

  • 行1:thors
  • 行2:Wanda
  • 行3:spiderman
  • 行4:ironman

如果你的审批人名字可能包含连字符或者点(比如Mary-Ann),可以把(\w+)改成([\w-]+)来适配,根据你的实际数据调整就行。

内容的提问来源于stack exchange,提问作者S F

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.27 21:49:08