![](/img/trans.png)
[英]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.