'{5}<blah>{0}</blah>'
我想把它变成:
['{5}', '<blah>', '{0}', '</blah>']
我目前使用:________.split(/({.*?})/);
但是当花括号是第一个字符时,这会失败:
'{0}<blah>'
变成了:
['', '{0}', '<blah>']
...一个3元素数组,而不是2
我的正则表达式有什么问题?
谢谢!
答案 0 :(得分:5)
您的正则表达式没有任何问题,但是您使用拆分的方式存在问题。 Split会根据分隔符返回一个数组,因此如果分隔符是FIRST,它会为您提供分割项左侧和右侧的内容。
只需检查第一项是否=='',如果是,则将其删除。
答案 1 :(得分:0)
这应该这样做:
split(/((?!^)\{.*?\})/)
否定前瞻 - (?!^)
- 如果匹配未在字符串的开头开始,则成功。
答案 2 :(得分:0)
您如何看待:
'{5}<blah>{0}</blah>'.split(/{([^}]+)}/g)
花卷块的值是项目1中的每2个项目。