Skip to content

Instantly share code, notes, and snippets.

@sgonyea
Created January 4, 2011 21:39
Show Gist options
  • Save sgonyea/765481 to your computer and use it in GitHub Desktop.
Save sgonyea/765481 to your computer and use it in GitHub Desktop.
require 'strscan'
start = "KEYWORD_START"
end = "KEYWORD_END"
regex = Regexp.new "#{start}(.+?)#{end}", false
text = 'Lorem ipsum dolor sit amet, KEYWORD_STARTconsecteturKEYWORD_END adipiscing elit. Praesent tellus nisl, KEYWORD_STARTconsequatKEYWORD_END at auctor ut, consectetur eget diam. Mauris eget magna ac nunc cursus dapibus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Nulla magna orci, faucibus non aliquam id, fermentum non nisi. Cras ac tortor a lacus vestibulum aliquam ut rutrum mauris. KEYWORD_STARTIntegerKEYWORD_END rutrum ultrices euismod. KEYWORD_STARTPellentesque quis libero ligulaKEYWORD_END, eu elementum enim. Quisque sed luctus dui. Suspendisse vel enim eget lorem cursus euismod. Aliquam condimentum ultricies tincidunt. Nam leo urna, placerat vel vulputate sed, condimentum id lacus. Proin imperdiet, KEYWORD_STARTloremKEYWORD_END quis mattis elementum, ligula justo volutpat augue, id blandit ligula neque eu ante. Etiam massa justo, iaculis non accumsan non, blandit sit amet lorem. Quisque KEYWORD_STARTaccumsanKEYWORD_END, dolor accumsan interdum tincidunt, quam tortor imperdiet purus, vel consectetur metus erat ut dolor. Integer pulvinar lobortis commodo. Proin id urna a ante lobortis KEYWORD_STARTfeugiatKEYWORD_END'
sscan = StringScanner.new text
sscan.match? regex
# => nil
text.scan regex
# => [["consectetur"], ["consequat"], ["Integer"], ["Pellentesque quis libero ligula"], ["lorem"], ["accumsan"], ["feugiat"]]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment