in reply to Re^2: Substituting with match containing newline and space characters
in thread Substituting with match containing newline and space characters
You really should use an HTML parser to handle this job, but the following regular expression and substitution "trick" might just be robust enough to handle your data:
use strict; use warnings; my $data = do { local $/; <DATA> }; $data =~ s/ (<input.*?ng-model=") ([^[]+) (\[\d+\]") (.*?) / $1 . $2 . $3 . qq( label="@{[ (split '\.', $2)[-1] ]}") . $4 /exgs ; print $data; __DATA__ <input type="checkbox" ng-model="data.mydebts.loan[0]" <input type="checkbox" ng-model="foo.bar.baz.qux[2]" /> <input type="checkbox" ng-model="foo[300]" >
Results:
<input type="checkbox"
ng-model="data.mydebts.loan[0]" label="loan"
<input type="checkbox"
ng-model="foo.bar.baz.qux[2]" label="qux" />
<input type="checkbox"
ng-model="foo[300]" label="foo" >
jeffa
L-LL-L--L-LL-L--L-LL-L-- -R--R-RR-R--R-RR-R--R-RR B--B--B--B--B--B--B--B-- H---H---H---H---H---H--- (the triplet paradiddle with high-hat)
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^4: Substituting with match containing newline and space characters
by MorayJ (Beadle) on Mar 31, 2015 at 11:27 UTC |