首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >匹配第9次出现并返回字符串下一行部分的Regex。

匹配第9次出现并返回字符串下一行部分的Regex。
EN

Stack Overflow用户
提问于 2020-03-19 01:08:21
回答 1查看 118关注 0票数 0

我正在使用Zapier从电子邮件正文中提取名称,我需要使用Regex来返回Zap的每一步字符串中名称的第n次出现。

这是我正在使用的演示

例如,在Zap的第二部分,我想从字符串中返回'John,CPA,CFE,CIA,CMA,CGFM,PMP,CISA‘。

每次运行Regex时,名称都会不同,因此Regex必须返回位于“.”每个实例之间的数据。和“(”)

到目前为止,我已经:

(?)A(?)+){2}(.)(?= *()

但我被困住了

如何调整代码以返回列表中的第1、2或3名?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-19 01:20:19

如果只需要第n次匹配(而不是选择n-th的匹配列表),则将获得第一次匹配:

代码语言:javascript
复制
(?:\.{37}\s+.+?\(.*?){0}\.{37}\s+(.+?)\(

这得到了第二个:

代码语言:javascript
复制
(?:\.{37}\s+.+?\(.*?){1}\.{37}\s+(.+?)\(

第三项:

代码语言:javascript
复制
(?:\.{37}\s+.+?\(.*?){2}\.{37}\s+(.+?)\(

等。

基本说明:-上半部分,从?:开始,是一个非捕获组;它需要匹配,但它不是捕获的一部分。-它后面的{x}使它匹配x次数,所以要匹配第一次,即0次,匹配第二次,等等--表达式的其余部分再次匹配,但现在是第1组了。

若要获得要从中选择的列表,请执行以下操作:

代码语言:javascript
复制
\.{37}\s+(.+?)\(
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60749589

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档