我有这个字符串:
P.1 P.2 P.3 P.4
ASTON VETERINARY HOSPITAL
Page 1/2
00 PennelJ Road
Media, PA 19063-5983
(610) 474-5670
Client :
我想获取Client
和P.\d
之间的文本。这是演示:Regex
(P.\d)[\s\S]*(?=^.+Client :?)
问题在于它与第一页P.1
相匹配。我需要在客户之前最接近的P.\d
。
如何更改正则表达式,使其与P.4
相匹配。
答案 0 :(得分:2)
我尝试过使用非贪婪的运算符,但这是行不通的。我会尽量避免让 entire 正则表达式与您想要的完全匹配,而应使用组。然后,您可以编写匹配器以匹配任意数量的var str = "abc@xyz.com,xyz@xyz.com,,,pqr@xyz.com,,,,123@xyz.com,";
str = str.split(',').filter(a => a).join(',');
console.log(str);
构造,这样就可以使对str = str.replace(/,+/g, ",").replace(/,(.*),/, '$1');
字符串的扫描更加简单,因为您不必尝试这样做作为前瞻。因此:
P.1
似乎可以精确地产生您想要的东西。语法Client
是正则表达式,用于:稍后让我询问“任何”组。