Javascript:拆分字符串中未闭合的标签?

标签 javascript regex parsing

我有一种简单的标记语言,支持以下语句:

<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/

相关文章:

java - 如何处理包含正斜杠 (/) 的请求?

python - 如何从 Python 中的 YouTube 链接中提取视频 ID?

javascript - Three.js - 它有顶点索引着色吗?

javascript - Material UI Autocomplete 的 chop 值(复制 Material UI Multiple Select 的 chop renderValue)

javascript - Vuejs 中使用静态 JSON 进行动态路由

javascript - 正则表达式 - 匹配字符而不是数字

javascript - 修改react-big-calendar中的工具提示

javascript - 使用 RegExp 和 span 突出显示变量中的文本

c++ - boost 变体的 spirit 传承

python - 从字符串中解析多个 FQDN