看板 Ajax 關於我們 聯絡資訊
1.此方式會匹配字元進可能少次的出現,如/a+?/套用至字串"aaa",僅匹配第一個字母a 2.但非貪進版/a+?b/會和貪進版的/a+b/套用至字串"aaab",皆匹配整個字串 為什麼2會出現這樣的結果,我看javascript大全的第255頁的解釋是"因為正規運算式範 式比對的方式是找出字串中第一個可能出現匹配的位置,既然在這個字串中第一個字元 處就有可能出現匹配,它就不會考慮在這個字元後可能出現的更短匹配 " 我實在看不懂它在寫甚麼,在內文中說的"既然在這個字串中第一個字元處就有可能出現 匹配,它就不會考慮在這個字元後可能出現的更短匹配",那這樣說的話 /a+?/套用至字串"aaa",不是也應該aaa而不是匹配第一個字母a 希望看得懂"javascript大全",這段在寫甚麼的可以告訴我.... -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 106.1.62.253 ※ 文章網址: http://www.ptt.cc/bbs/Ajax/M.1399291293.A.A8B.html
cat99961:此段是關於javascript的正規運算式 05/05 20:03
ck574b027:換句話說,a+? 如果已經得到 match,就不會繼續吃字串 05/05 20:25
GoalBased:不會考慮後面"更長"的匹配吧 05/05 21:03
cat99961:書上寫的是"更短" 05/05 21:51
cat99961:而且書中寫/a+?b/套用至aaab是匹配整個字串 05/05 21:56
cat99961:不是我以為的ab 05/05 21:56
ck574b027:他的解釋是針對 a+?b,第一個 match 是 aaab,因為要 05/05 22:14
ck574b027:從前面讀過來啊,所以當然不會只配 ab 05/05 22:15
TonyQ:因為 regex 是從前面往後讀,他不會回頭判斷是不是可以更短 05/06 06:25
cat99961:超感謝你們...我看懂了 05/06 10:54