use strict;
my $str = '<h2>Déroulement de votre examen radiologique ?</h2>
<p>test De l’accueil dans nos locaux à la remise des résultats, toute l’équipe Radiolor, médecins radiologues, manipulateurs et secrétaires, reste à votre service et met tout en œuvre pour que votre temps d’attente soit 66 limité et que votre examen se déroule dans les meilleures conditions. Tous les gestes médicaux sont <a>réalisés dans les conditions d’hygiène strictes ; et : dans </a>le respect des bonnes pratiques.</p>
<p>À votre arrivée , nous vous remercions de passer par le secrétariat et de vous munir de votre ordonnance et de votre carte vitale !.<br />
N’oubliez pas vos anciens examens et <strong>respectez les consignes</strong> qui vous ont été transmises lors de votre prise de <code>rendez-vous : </code>prise de sang, éventuel produit de contraste ou d’infiltration prescrit ?.</p>
<!-- meta slider -->
test
</div>
<script type="text/javascript">
var timer_metaslider_144 = function() {
var slider = ;!window.jQuery ? window.setTimeout(timer_metaslider_144, 100) : !jQuery.isReady ? window.setTimeout(timer_metaslider_144, 1) : metaslider_144(window.jQuery);
};
timer_metaslider_144();
</script>';
my $regex = qr/(?!<(script|code)[^>]*?>)((\s)(\?|\!|\;|\:))(?![^<]*?<\/(script|code)>)/ip;
if ( $str =~ /$regex/g ) {
print "Whole match is ${^MATCH} and its start/end positions can be obtained via \$-[0] and \$+[0]\n";
# print "Capture Group 1 is $1 and its start/end positions can be obtained via \$-[1] and \$+[1]\n";
# print "Capture Group 2 is $2 ... and so on\n";
}
# ${^POSTMATCH} and ${^PREMATCH} are also available with the use of '/p'
# Named capture groups can be called via $+{name}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Perl, please visit: http://perldoc.perl.org/perlre.html