Contents

[regex]Greedy quantifier 和 Lazy quantifier 筆記

Contents

前幾天在老闆 來點寇汀吧。 Boss,CODING please.製作台灣天氣地圖
看到使用正規化抓取href=".*?“裡面的值

在此學會新的正規化抓取href裡面值

Google找到相關文件
在此記錄筆記

+——————-+—————–+—————————+
| Greedy quantifier | Lazy quantifier | Description |
+——————-+—————–+—————————+
| * | *? | Match zero or more times. |
| + | +? | Match one or more times. |
| ? | ?? | Match zero or one time. |
| {n} | {n}? | Match exactly n times. |
| {n,} | {n,}? | Match at least n times. |
| {n,m} | {n,m}? | Match from n to m times. |
+——————-+—————–+—————————+
在這邊有找到兩個名詞

原本看不懂這兩個意思
不過在這裡面有找到答案一名之立,旬月踟躇

正在翻譯《精通正則表達式》,就遇到了這種情況:greedy quantifier控制的子表達式會捕獲儘可能多的匹配字符,lazy quantifier控制的子表達式會捕獲儘可能少的匹配字符。greedy的原意就是「貪婪」,lazy的原意就是「懶惰」,這樣直白地理解,儘管有些彆扭,倒也不成問題。
可是,出現greedy和lazy的語境越來越多,直白的翻譯也就越來越不讓人滿意了,「Because of its greediness」,翻譯成「由於它的貪婪性」,簡直無法卒讀。但是,想來想去,實在找不到更好的辦法,總是被「貪」和「懶」兩個字所束縛,這些天,兩本厚厚的英漢詞典,和現代漢語詞典,都快翻盡了,仍然一無所獲。

終於在下班的路上想到,不妨另闢蹊徑,索性不出現「貪」和「懶」——greedy翻譯成「多數優先」,lazy翻譯成「少數優先」,反而流暢許多;而且,這樣一來,也不用「性」來「性」去的了,「Because of its greediness」直接翻譯成「因為它是多數優先的」,就OK。

結論

這個特性真的不錯,平常href=”[^"]+“抓取括號的字,這樣非常簡短。Quantifier在後面加?找最短路徑這樣非常好記
學這個小東西,相信regex技能又前進一大步XD

參考來源
Rubular: a Ruby regular expression editor and tester
http://www.rubular.com/
railroad diagram
https://blog.longwin.com.tw/2013/01/regex-display-tool-2012/
Railroad Diagrams
https://regexper.com/documentation.html
Quantifiers
http://www.rexegg.com/regex-quickstart.html
regex - What do lazy and greedy mean in the context of regular expressions? - Stack Overflow
http://stackoverflow.com/questions/2301285/what-do-lazy-and-greedy-mean-in-the-context-of-regular-expressions
Logdown
https://logdown.com/account/posts/1774877/edit
[正則表示式 正規表示式 (Regular expression)] 量符(Quantifier):貪心量符、惰性量符的介紹
http://notepad.yehyeh.net/Content/Program/RegularExpression/8.php
Regex Quantifier Tutorial: Greedy, Lazy, Possessive
http://www.rexegg.com/regex-quantifiers.html#cheat_sheet
Regexper
https://regexper.com/#href%3D%22(.*%3F)%22
乱象,印迹 » 一名之立,旬月踟躇
http://www.luanxiang.org/blog/archives/36.html
Greedy quantifier
http://stackoverflow.com/questions/2301285/what-do-lazy-and-greedy-mean-in-the-context-of-regular-expressions
Quantifiers in Regular - Google 搜尋
https://www.google.com.tw/search?q=Quantifiers+in+Regular&source=lnt&tbs=lr:lang_1zh-CN%7Clang_1zh-TW&lr=lang_zh-CN%7Clang_zh-TW&sa=X&ved=0ahUKEwiAm6WGpsvTAhXCHJQKHVa7Dm0QpwUIHQ&biw=1600&bih=809