我有这根绳子
PENNER,JANET E TR-50% & PENNER,MICHAEL G TR - 50% & SOURCE LLC & LARRY & FREDDY INC
我想把它分成这样的组
PENNER,JANET E TR
PENNER,MICHAEL G TR
SOURCE LLC
LARRY & FREDDY INC
我正在使用 javascript (node) 和 matchAll 这是我迄今为止的尝试
/\s*([^&]+) ((L.?L.?C.?)|(T.?R.?)|(I.?N.?C.?)|(C.?O.?)|(REV LIV))(?=-)?/g
困难的部分是一些企业名称包含与号(&),那么我该怎么做?
正向后向查找
(?<=% )&
匹配百分比运算符和空格,后跟与符号运算符和空格=>% &
,然后您可以使用与OR正则表达式运算符相同的逻辑|
使用文字字符串 LLC 和空格,后跟 & 符号空格 => LLC &
。然后 split
使用此正则表达式的字符串 => str.split(regex)
.
const regex = / (?<=% )& | (?<=LLC )& /g;
它非常简单,不太可能容纳字符串中所有可能出现的名称,但如果需要,您始终可以使用相同的正向查找后面的正则表达式添加更多逻辑 =>
?<=
const str = 'PENNER,JANET E TR-50% & PENNER,MICHAEL G TR - 50% & SOURCE LLC & LARRY & FREDDY INC';
const regex = / (?<=% )& | (?<=LLC )& /g;
const results = str.split(regex);
console.log(results);