use strict;
my $str = '[{"ads":[{"uf":"https://prhzxq.com/wnclcm?aid=2906583808848052910&t=1659642044&s=776108&mid=0","ttl":"Sarah (31) 1 km from you","n":"Hey, do you want to come? 😉😘","gf":"","ic":"https://i.wmgtr.com/cic/Ff89Uqu0t0q-Ic97IVjQaovVMiroHWrm.png","tn":""}],"rinfo":{"rw":"/wnrw?aid=2906583808848052910","rc":""}},{"ads":[{"uf":"https://prhzxq.com/wnclcm?aid=2906583808848052910&t=1659642044&s=770131&mid=1","ttl":"Brittany (30) 3 km from you","n":"Hey, do you want to come? 😉😘","gf":"","ic":"https://i.wmgtr.com/cic/h41dZhp8C7mIiHIIdXGZ9gSAZ1ZQjD0T.png","tn":"dating2"}],"rinfo":{"rw":"","rc":""}}]';
my $regex = qr/"uf":"([^"]+)(?!.*dating[1,2])/mp;
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