我正在使用Zapier从电子邮件正文中提取名称,我需要使用Regex来返回Zap的每一步字符串中名称的第n次出现。
这是我正在使用的演示
例如,在Zap的第二部分,我想从字符串中返回'John,CPA,CFE,CIA,CMA,CGFM,PMP,CISA‘。
每次运行Regex时,名称都会不同,因此Regex必须返回位于“.”每个实例之间的数据。和“(”)
到目前为止,我已经:
(?)A(?)+){2}(.)(?= *()
但我被困住了
如何调整代码以返回列表中的第1、2或3名?
谢谢!
发布于 2020-03-19 01:20:19
如果只需要第n次匹配(而不是选择n-th的匹配列表),则将获得第一次匹配:
(?:\.{37}\s+.+?\(.*?){0}\.{37}\s+(.+?)\(这得到了第二个:
(?:\.{37}\s+.+?\(.*?){1}\.{37}\s+(.+?)\(第三项:
(?:\.{37}\s+.+?\(.*?){2}\.{37}\s+(.+?)\(等。
基本说明:-上半部分,从?:开始,是一个非捕获组;它需要匹配,但它不是捕获的一部分。-它后面的{x}使它匹配x次数,所以要匹配第一次,即0次,匹配第二次,等等--表达式的其余部分再次匹配,但现在是第1组了。
若要获得要从中选择的列表,请执行以下操作:
\.{37}\s+(.+?)\(https://stackoverflow.com/questions/60749589
复制相似问题