November 2012
Intermediate to advanced
888 pages
54h 46m
Polish
Chcemy wykonać kilka operacji typu „znajdź i zamień”, sterowanych oddzielnymi wyrażeniami regularnymi — równolegle, w pojedynczym przejściu przez łańcuch.
Musimy użyć metody Regexp.union do zagregowania poszczególnych wyrażeń regularnych w pojedyncze wyrażenie, pasujące do każdego z wyrażeń cząstkowych. Zagregowane wyrażenie musimy następnie przekazać jako parametr metody String#gsub wraz z blokiem kodowym bazującym na obiekcie MatchData. Wiedząc, do którego z wyrażeń cząstkowych przyporządkować można znalezioną frazę, możemy wybrać odpowiednią frazę zastępującą:
class String def mgsub(key_value_pairs=[].freeze) regexp_fragments = key_value_pairs.collect { ...