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

我想把它变成:

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

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

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

'{0}<blah>'

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

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

谢谢!

有帮助吗?

解决方案

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

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

其他提示

这应该这样做:

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

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

您如何看待:

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top