in reply to Calling sub-routine in regex
Mojo::DOM makes such things fairly trivial. Consider the following:
#!/usr/bin/perl use strict; use warnings; use feature 'say'; use Mojo::DOM; my $html = '<h2>2.1. Match Literal Text</h2> <h2>2.2. Match Nonprintable Characters</h2> <h2>2.3. Match One of Many Characters</h2>'; my $dom = Mojo::DOM->new( $html ); #for each hr foreach my $hr ( $dom->find('h2')->each ){ # grab the text my $class = $hr->text; # remove x.x. $class =~ s/\-?\d+\.\d+\. //g; # update the DOM $hr->attr('class' => $class ); } # display updated DOM say $dom;
Prints:
<h2 class="Match Literal Text">2.1. Match Literal Text</h2> <h2 class="Match Nonprintable Characters">2.2. Match Nonprintable Char +acters</h2> <h2 class="Match One of Many Characters">2.3. Match One of Many Charac +ters</h2>
Please let me know if you have any questions.
|
|---|