Skip to content

Instantly share code, notes, and snippets.

@kml
Last active December 15, 2022 19:44
Show Gist options
  • Save kml/74f9b26a1eb39da7f8cd to your computer and use it in GitHub Desktop.
Save kml/74f9b26a1eb39da7f8cd to your computer and use it in GitHub Desktop.
Regexp breaking Ruby
# encoding: utf-8
require 'minitest'
require 'minitest/autorun'
describe "regexp" do
let(:regexp) { /(\s*(<p>\s*<\/p>)\s*)+\Z/mi }
it "cleans up trailing empty tag from simple string" do
"X <p> </p> ".gsub(regexp, "").must_equal "X"
end
it "cleans up trailing empty tags from html" do
DATA.read.gsub(regexp, "")
# never gets here
end
end
__END__
<p><strong>Wkręt uniwersalny 4,5x60, op. 500 szt. SPAX.</strong></p> <p>Główka stożkowa, SPAX T-STAR plus, ocynkowany, pasywowany na żółto (A2L).</p> <p> </p> <p><strong>Zastosowanie: </strong>zastosowanie uniwersalne.</p> <p> </p> <p><strong>Zalety:</strong></p> <p> </p> <p>- bez nawiercania (w zależności od rodzaju drewna)</p> <p> </p> <p>- szybkie i łatwe wkręcanie bez użycia siły (dłuższe działąnie wkrętarki z ładowarką)</p> <p> </p> <p>- skutecznie zmniejsza siłę rozszczepiającą także przy krawędziach</p> <p> </p> <p>- szeroki zakres zastosowań wewnątrz pomieszczeń.</p> <p> </p> <p><strong>Wymiary:</strong></p> <p> </p> <p> - średnica gwintu: 4,5 mm<br /></p> <p> </p> <p> </p> <p> </p> <p> - długość całkowita (Ls): 60 mm</p> <p> </p> <p></p> <p> </p> <p> - gwint częściowy (LgT): 37 mm</p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> - gniazdo T: 20 mm</p> <p> </p> <p></p> <p><br /></p> <p><strong>Szczególne właściwości:</strong></p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p>A. Gwint częściowy: pewne dociągnięcie górnego elementu</p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p>B. ocynkowany, pasywowany na żółto (A2L)</p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p>C. SPAX T-STAR: pewne odadzenie narzędzia, bez efektu Cam-Out, optymalne przeniszenia sił</p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p><strong>Właściwości:</strong></p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p>1. SPAX ze szpicem 4CUT: wkręcanie bez nawiercania (w zależności od drewna), bez rozwasrstiwania drewna, czworokątny szpic wypiera włókna</p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p>2. SPAX profil falisty: po sam szpic - szybkie i pewne wkręcanie</p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p>3. SPAX główka MULTI: licuje z powierzchnią, frezuje w drewnie, hamuje na metalu</p>
@kml
Copy link
Author

kml commented Aug 21, 2014

gem install minitest
wget 'https://gist.githubusercontent.com/kml/74f9b26a1eb39da7f8cd/raw/6e2a7647bcc242a4646beb78e0432b07d2c5a481/regexp_breaking_ruby.rb'
ruby regexp_breaking_ruby.rb

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment