I am trying to get the handle at learning (*SKIP)(*FAIL) to get the variable "look-behind" concept but I am missing something.
$RLine = "R.N. Raox, J. Pure and Appl. Phys."; $Jrnl = "Appl. Phys."; if( $RLine =~ /^(.*?(?:(?: and| &)(*SKIP)(*FAIL))?) (\Q$Jrnl\E)$/ +){ print "11: $1\n"; print "22: $2\n"; print "Matched\n"; } else { print "Not Matched\n"; }
Basically when "and" or "&" comes just before the search pattern, it should not match. In this case if "and" comes anywhere in the line it matches.
$RLine = "R.N. Raox, J. Pure and Appl. Phys."; #Should not match -> Pattern OK $RLine = "R.N. Raox, J. Pure text Appl. Phys."; #Should match -> Pattern OK $RLine = "R.N. Raox, J. Pure and text Appl. Phys."; #Should match but it is not -> Pattern NOT OK $RLine = "R.N. and Raox, J. Pure text Appl. Phys."; #Should match but it is not -> Pattern NOT OK
Could someone help me out please.
In reply to Another Look behind by dominic01
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |