我有以下字符串
"@bm5ja7qyd1ljuqcqb09@ == 'test2' and @bm5ja7qyd1ljuqcqb09@ != 'test1' or @wersf4vrdf1f5e@ == 'test2' and @sdfsd56fe6sdfs@ != 'test1'"
我需要用and
和or
将它们分开。
我想要这样的输出
@bm5ja7qyd1ljuqcqb09@ == 'test2'
@bm5ja7qyd1ljuqcqb09@ != 'test1'
@wersf4vrdf1f5e@ == 'test2'
@sdfsd56fe6sdfs@ != 'test1'
我只能拆分and
或or
之类的作品。但是如果它有and
或它有or
,我需要拆分。
答案 0 :(得分:4)
您可以将正则表达式与OR(|
)一起使用
var str = "@bm5ja7qyd1ljuqcqb09@ == 'test2' and @bm5ja7qyd1ljuqcqb09@ != 'test1' or @wersf4vrdf1f5e@ == 'test2' and @sdfsd56fe6sdfs@ != 'test1'"
var strArr = str.split(/ and | or /g);
console.log(strArr);
根据注释中的另一种情况进行了更新,方法是将单引号内的单词分开:
var str = "@bm5ja7qyd1ljuqcqb09@ == 'test2' and @bm5ja7qyd1ljuqcqb09@ != 'test1' or @wersf4vrdf1f5e@ == 'test2' and @sdfsd56fe6sdfs@ != 'test1' and @bm5ja7qyd1ljuqcqb09@ == 'test2 and or other value'"
var strArr = str.split(/(?!\B'[^']*) and (?![^']*'\B)|(?!\B'[^']*) or (?![^']*'\B)/g);
console.log(strArr);