如何用正则表达式提取Customer:后大空格间的目标文本
提取客户名称的正确正则表达式
你的原正则Customer:\s*([^ -.]+)只能匹配到“Second”,是因为[^ -.]+是排除空格、减号、点的字符集,遇到第一个空格就停止匹配了。
要完整提取“Second Baptist School”,可以利用文本中“Date of Sale:”作为结束标识,使用非贪婪匹配捕获中间内容:
Customer:\s*(.*?)\s*Date of Sale:
说明:
Customer:\s*:匹配“Customer:”及后续任意数量的空白字符(.*?):非贪婪模式匹配任意字符(含空格),直到遇到后续的“Date of Sale:”,括号用于捕获目标内容\s*Date of Sale::匹配“Date of Sale:”前的任意空白字符和标识本身,作为匹配结束的边界
如果你的场景中客户名称后的结束标识固定为“Date of Sale:”,这个正则就能准确捕获完整的客户名称。
内容的提问来源于stack exchange,提问作者Zach
相关产品推荐
相关产品推荐

