簡體   English   中英

用於匹配多個實例的JavaScript Regex

[英]JavaScript Regex for matching multiple instances

給定以下字符串,什么正則表達式匹配花括號內的(包括)花括號中的子串?

var string = "{name: Jackie} works at {company: Google}";

我嘗試過使用string.match(/{.*}/gi)但它返回整個字符串作為匹配:

Array [ "{name: Jackie} works at {company: Google}" ]

預期產量:

Array [ "{name: Jackie}", "{company: Google}" ]

你錯過了? 在你的表達中。 你的正則表達式( {.*} )的問題將匹配{然后直到最后一次出現} .*貪心,在哪里? {.*?}使它變得懶惰。

正則表達式演示

正則表達式:/ /{.*?}/g

1. {.*?}這將匹配{然后直到第一次出現}

{。*}將{匹配到字符串的末尾,然后備份到最后}。 所以它只是匹配從第一個{到最后}。 的? 將使多匹配延遲,使其從第一個{到下一個},但它將在{to}的每一步中嘗試匹配},並在每次失敗時回溯一點,因此它還會做更多的工作。 通過匹配所有NOT}(如{[^\\}]*} ),你匹配完全相同的東西,但沒有所有的后退跟蹤。 最好完全匹配你想要的東西,這樣你就不會對它匹配的東西感到驚訝。 (因為。*?}無法匹配},甚至不讓它嘗試)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM