如何将字符串分割成两个或多个单词?

时间:2019-04-21 06:08:59

标签: javascript regex

我有以下字符串

"@bm5ja7qyd1ljuqcqb09@ == 'test2' and @bm5ja7qyd1ljuqcqb09@ != 'test1' or @wersf4vrdf1f5e@ == 'test2' and @sdfsd56fe6sdfs@ != 'test1'"

我需要用andor将它们分开。 我想要这样的输出

@bm5ja7qyd1ljuqcqb09@ == 'test2'
@bm5ja7qyd1ljuqcqb09@ != 'test1'
@wersf4vrdf1f5e@ == 'test2'
@sdfsd56fe6sdfs@ != 'test1'

我只能拆分andor之类的作品。但是如果它有and或它有or,我需要拆分。

1 个答案:

答案 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);