我有一种简单的标记语言,支持以下语句:
<pause> <state:OK> <fast> Oh <pause> sure, yep! <pause> Yep I certainly do
我想将这些语句拆分成一个数组,例如
["<pause> ", "<state:OK> ", "<fast>", "Oh ", "<pause>", "sure, yep! ", "<pause>", " Yep I certainly do!"]
我正在尝试使用像这样的正则表达式
line.split(/(?=<.+>)/)
但是我得到的数组是
["<pause> ", "<state:OK> ", "<fast> Oh ", "<pause> sure, yep! ", "<pause> Yep I certainly do!"]
我应该在第一个字符串上使用什么正则表达式才能获得我想要的结果?
请注意,我没有解析 HTML。
最佳答案
我建议使用match
而不是split
:
var line = "<pause> <state:OK> <fast> Oh <pause> sure, yep! <pause> Yep I certainly do";
var arr = line.match(/<.+?>|\S[^<]*?(?=\s*(<|$))/g)
console.log(arr);
关于Javascript:拆分字符串中未闭合的标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48571482/