[英]Regular expression to get string and number between square brackets - javascript
[英]How to get square brackets with their elements with regular expression
我有以下字符串:
[5][Sport][one]
我想用以下字符串完全替换它:
<br />
我尝试了以下正则表达式,但它为我提供了方括号[5,Sport,one]
作为列表
/[^[\]]+(?=])/g
我不确定您的实际期望,因为您没有提供所需的输出...
所以你的意思是:
js> s = "[5][Sport][one]"
js> s.replace(/\]\[|\[|\]/g,"<br/>")
"<br/>5<br/>Sport<br/>one<br/>"
您也可以使用.match
来实现,因为我猜您可能已经尝试过:
js> "<br/>"+s.match(/[^[\]]+(?=])/g).join("<br/>")+"<br/>"
"<br/>5<br/>Sport<br/>one<br/>"
如果您不想要外部<br/>
,则可以执行以下操作:
js> s.match(/[^[\]]+(?=])/g).join("<br/>")
"5<br/>Sport<br/>one"
编辑:
给出您的评论,您想要:
js> s.replace(/(\[.*\]){3}/g,"<br/>")
"<br/>"
这将只需更换的整整三OCCURENCES […]
与<br/>
。
注意:请注意.*
可能会对字符串产生副作用,因此您可能需要使用:
js> s.replace(/(\[[\d\w]+\]){3}/g,"<br/>")
"<br/>"
而是仅匹配括号中的数字和字母。
编辑#2:@aaronm建议:
js> s.replace(/([[^]]]){3}/g,"<br/>")
"<br/>"
甚至是更好的解决方案,因为它将匹配包含其他[…]
以外的所有内容的整理后的[…]
字符串。
由于正则表达式是贪婪的,因此表达式可以非常简单:
var s = '[5][Sport][one]';
var re = /\[.*\]/;
console.log(s.replace(re,'<br />')); // <br />
请注意,HTML不使用XML样式的空标记,因此应使用<br>
而不是<br />
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.