用花括号分隔字符串作为分隔符?

时间:2009-09-10 13:18:56

标签: javascript regex split

'{5}<blah>{0}</blah>'

我想把它变成:

['{5}', '<blah>', '{0}', '</blah>']

我目前使用:________.split(/({.*?})/);

但是当花括号是第一个字符时,这会失败:

'{0}<blah>'

变成了: ['', '{0}', '<blah>'] ...一个3元素数组,而不是2

我的正则表达式有什么问题?

谢谢!

3 个答案:

答案 0 :(得分:5)

您的正则表达式没有任何问题,但是您使用拆分的方式存在问题。 Split会根据分隔符返回一个数组,因此如果分隔符是FIRST,它会为您提供分割项左侧和右侧的内容。

只需检查第一项是否=='',如果是,则将其删除。

答案 1 :(得分:0)

这应该这样做:

split(/((?!^)\{.*?\})/)

否定前瞻 - (?!^) - 如果匹配未在字符串的开头开始,则成功。

答案 2 :(得分:0)

您如何看待:

'{5}<blah>{0}</blah>'.split(/{([^}]+)}/g)

花卷块的值是项目1中的每2个项目。