正则表达式沿 & 分割字符串

问题描述 投票:0回答:1

我有这根绳子

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

困难的部分是一些企业名称包含与号(&),那么我该怎么做?

javascript regex
1个回答
0
投票

正向后向查找

(?<=% )& 
匹配百分比运算符和空格,后跟与符号运算符和空格=>
% & 
,然后您可以使用与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);

© www.soinside.com 2019 - 2024. All rights reserved.