首页 > 解决方案 > 如何编写捕获字符串之间的字符串的正则表达式(即特定单词之间的单词)

问题描述

下面的文本字符串来自 Integromat 文本解析器。我正在尝试从用户使用内置 Integromat Regex 文本解析器填写的表单中捕获值。

例如,测试字符串的出现(不幸的是,信息没有在单独的行中出现):

Information First Name:Frank Last Name:McTester Email:mctesterxmas@rya.com
Guest Name:Debby McTester Party RegistrationNumber of Dinner Guests:  2 [http://

我需要正则表达式来提取字符串和FRANK之间的信息,依此类推。First Name:Last Name:

我当前的正则表达式非常适用于这些字符串在自己的行中的电子邮件。例如,如果电子邮件中的每个字符串都在其自己的行中,则此正则表达式运行良好。

First Name:\s*(.*)|Last Name:\s*(.*)|Email:\s*(.*)|Guest Name:\s*(.*)|Number of Dinner Guests:\s*(.*)

但是当一切都混在一起时,我无法弄清楚如何使用正则表达式来解析字符串。

标签: regexintegromat

解决方案


不要使用替代品,而是按顺序将整行与每个字段匹配。

First Name:\s*(.*?)\s+Last Name:\s*(.*?)\s+Email:\s*(.*)|Guest Name:\s*(.*?)Number of Dinner Guests:\s*(.*)

推荐阅读