[英]RegEx on Javascript; Checking for instances of one of multiple strings
[英]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.