Sha256: b4329029a9d0482ac16dfb215b123d48d55c0e632df45c6d6942c71fa3240150
Contents?: true
Size: 1.09 KB
Versions: 3
Compression:
Stored size: 1.09 KB
Contents
class String # Breaks a string up into an array based on a regular expression. # Similar to scan, but includes the matches. # # s = "<p>This<b>is</b>a test.</p>" # s.divide( /\<.*?\>/ ) # # _produces_ # # ["<p>This", "<b>is", "</b>a test.", "</p>"] # # CREDIT: Trans def divide( re ) re2 = /#{re}.*?(?=#{re}|\Z)/ scan(re2) #{re}(?=#{re})/) end # Like #scan but returns MatchData ($~) rather # then matched string ($&). # # CREDIT: Trans def mscan(re) #:yield: if block_given? scan(re) { yield($~) } else m = [] scan(re) { m << $~ } m end end # Breaks a string up into an array based on a regular expression. # Similar to scan, but includes the matches. # # s = "<p>This<b>is</b>a test.</p>" # s.shatter( /\<.*?\>/ ) # # _produces_ # # ["<p>", "This", "<b>", "is", "</b>", "a test.", "</p>"] # # CREDIT: Trans def shatter( re ) r = self.gsub( re ){ |s| "\1" + s + "\1" } while r[0,1] == "\1" ; r[0] = '' ; end while r[-1,1] == "\1" ; r[-1] = '' ; end r.split("\1") end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
facets-2.2.1 | lib/core/facets/string/scan.rb |
facets-2.2.0 | lib/core/facets/string/scan.rb |
facets-2.3.0 | lib/core/facets/string/scan.rb |