我有以下正则表达式:

/Name:\s+(.*)\s+Company:\s+(.*)\s+Email:\s+(.*)\s+Phone:\s+(.*)\s+Inquiry:\s+(.*)\s+Comments:\s+(.*)/g

我正在针对以下匹配项进行测试:

名称:伦敦布朗
公司:Amazon.com
电子邮件:[email protected]
电话:2065550000
咨询:技术
注释:示例注释


我想修改此RegExp以忽略“查询:技术”是否存在于字符串中,因为此数据有时存在而有时则不存在。这样,以下内容也将被接受:

名称:伦敦布朗
公司:Amazon.com
电子邮件:[email protected]
电话:2065550000
注释:示例注释


由于这是一个单一的脚本,因此我无法控制源数据。

最佳答案

您可以使用可选的非捕获组(?:Inquiry:\s+(.*)\s+)?

例如

Name:\s+(.*)\s+Company:\s+(.*)\s+Email:\s+(.*)\s+Phone:\s+(.*)\s+(?:Inquiry:\s+(.*)\s+)?Comments:\s+(.*)


Regex demo

关于javascript - 忽略两个正则表达式匹配项之间的字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57167723/

10-10 01:04