gpt4 book ai didi

javascript - 使用正则表达式按单词或运算符拆分

转载 作者:行者123 更新时间:2023-11-28 12:20:32 24 4
gpt4 key购买 nike

如何拆分

-(ab | c) & d -> (d|c)&e <-> f

放入数组

['-', '(', 'ab', '|', 'c', ')', '&', 'd', '->', '(', 'd', '|', 'c', ')', '&', 'e', '<->', 'f']

所以一般来说,它应该将字符串分割成标记。如果两个字母组合成一个单词(例如 ab ),则应将其视为 1 个标记。我有运营商- , ( , ) , | , & , -> ,和<-> .

可能是这样的

var str = '-(ab | c) & d -> (d|c)&e <-> f';
var regex = /([-&\|()]|\w+)/;
str.split(regex);

但它不包括-><->

最佳答案

您可以使用此正则表达式进行拆分:

var str = '-(ab | c) & d -> (d|c)&e <-> f';
var arr = str.split(/\s*(<?->|[-&|()]|\w+)\s*/).filter(Boolean)

console.log(arr)
//=> ["-", "(", "ab", "|", "c", ")", "&", "d", "->", "(", "d", "|", "c", ")", "&", "e", "<->", "f"]

分手:

\s*         # match 0 or more spaces
( # group spart
<?-> # match <-> or ->
| # OR
[-&|()] # match one of these symbols
| # OR
\w+ # match 1 or more word chars
) # group end
\s* # match 0 or more spaces

关于javascript - 使用正则表达式按单词或运算符拆分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39419914/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com