4
A
回答
3
http://www.regular-expressions.info/repeat.html Chekout取代的圖案出現的所有副本。
貪婪是指時代的正則表達式引擎將嘗試匹配特定的字符的數量。陳述一個正則表達式的表達式「貪婪」的方法是使用特殊的字符*
,+
,?
和{}
。
考慮
str = "asdfasdfbbbb"
r1 = /b/
r2 = /(asdf)*/
r3 = /b{3}/
r4 = /.*/
匹配來海峽這些正則表達式會導致:
R1匹配「asdfasdf b BBB」(非貪婪,試圖匹配b只是一次)
r2匹配「asdfasdf BBBB」(貪婪,嘗試匹配ASDF多次越好)
R3匹配「asdfasdf BBB B」(非貪婪,匹配b恰好3次)
R4匹配「asdfasdfbbbb」(ULTRA-貪婪,多次匹配幾乎任何字符儘可能)
由於正則表達式是表示特定文本模式的手段,它不像貪婪這是一個方法問題。您有時需要匹配三次foo(/(foo){3}/
)或無限次bar(/(bar)*/
)。
+0
'+ 1'給你優秀的解釋。非常感謝你! :) – DoLoveSky
2
7
在貪婪方法正則表達式模式往往在源string.For例如消耗最大字符
textstr = "bcabdcab"
textstr.gsub!(/(.*)ab/, "xxx")
# this will match whole `bcabdcab` and return `xxx`
這裏*
是一個貪婪量詞。在非貪婪方法中,正則表達式引擎在滿足匹配標準時返回。使量詞非貪婪追加?
textstr = "bcabdcab"
textstr.gsub!(/(.*?)ab/, "xxx")
# this will match only `bcab` part and return `xxxdcab`
gsub
返回STR(第一自變量)的與用於第二參數
相關問題
- 1. 貪婪和非貪婪的正則表達式
- 2. 正則表達式混合貪婪和非貪婪?
- 3. Python的正則表達式的速度 - 貪婪與非貪婪
- 4. 貪婪與非貪婪在Perl的正則表達式
- 5. 非貪婪正則表達式的行爲貪婪地
- 6. 正則表達式的幫助,貪婪與非貪婪
- 7. 正則表達式貪婪
- 8. 非貪婪的正則表達式
- 9. Perl的正則表達式:非貪婪
- 10. 使用正則表達式查找所有匹配 - 貪婪和非貪婪!
- 11. Notepad ++非貪婪正則表達式
- 12. 正則表達式非貪婪
- 13. 正則表達式非貪婪匹配
- 14. C++ 11正則表達式,非貪婪
- 15. 正則表達式非貪婪匹配
- 16. 非貪婪python正則表達式
- 17. 非貪婪正則表達式匹配
- 18. Python非貪婪正則表達式
- 19. posix正則表達式非貪婪
- 20. 非貪婪正則表達式失敗
- 21. 在javascript中貪婪與尾隨貪婪正則表達式
- 22. Perl的貪婪正則表達式不是演戲貪婪
- 23. 一個部分貪婪的正則表達式,其他貪婪
- 24. Ruby中非貪婪的正則表達式:pty和expect
- 25. 正則表達式和貪婪
- 26. 正則表達式:標點和貪婪
- 27. 非貪婪的正則表達式給出了貪婪的結果
- 28. 非貪婪正則表達式基於正則表達式中的原子位置貪婪
- 29. 正則表達式的貪婪範圍
- 30. 貪婪正則表達式的JavaScript
哪裏有[你看了?](https://www.google.com/#hl=en&q=ruby+greedy+regex)這包括在所有正則表達式文檔中。 –