Javascript 如何使用看起来像命名组的正则表达式分隔符?

Javascript 如何使用看起来像命名组的正则表达式分隔符?,javascript,regex-group,Javascript,Regex Group,我正在拆分包含以下形式子字符串的字符串: "<at>foo bar</at>" “foo-bar” 使用此构造: tokens = command.trim().split( /,\s+|,|\s+|(?=<at>)|(?=<\/at>)/ ) tokens=command.trim().split(/,\s+|,|\s+|(?=)|(?=)/) 但是,结果是一个数组: ["<at>foo&quo

我正在拆分包含以下形式子字符串的字符串:

 "<at>foo bar</at>"
“foo-bar”
使用此构造:

tokens = command.trim().split( /,\s+|,|\s+|(?=<at>)|(?=<\/at>)/ )
tokens=command.trim().split(/,\s+|,|\s+|(?=)|(?=)/)
但是,结果是一个数组:

["<at>foo", "bar", "</at>"]
[“foo”,“bar”,““”]
如何修改正则表达式以生成

["<at>", "foo", "bar", "</at>"]


提前感谢。

您可以匹配零件,而不是使用拆分

<\/?at>|[^<>\s]+
|[^\s]+

const regex=/|[^\s]+/g;

log(`foobar`.match(regex))第四只鸟的回答很好

另一种方法是只在标记之间拆分字符串:

const chars=“foo bar”;
const tags=//g;
const tokens=chars.replace(标记“”).split(/\s/);
常量结果=[“”,…标记,“]

console.log(result)
谢谢@fourth bird和@Astor-非常感谢。我意识到我还需要一个变体:第一个用例以这种方式拆分/匹配部分,第二个用例以
foo bar
结束拆分/匹配部分。