String matching: Difference between revisions

Content added Content deleted
(awk cannot use ~ unless sanitized string, use index instead)
(→‎{{header|AWK}}: support part 2)
Line 997: Line 997:
=={{header|AWK}}==
=={{header|AWK}}==
<lang AWK>#!/usr/bin/awk -f
<lang AWK>#!/usr/bin/awk -f
{ pos=index($2,$1)
{
print $1 " " (index($2,$1)==1 ? "begins" : "does not begin" ) " with " $2
print $2, (pos==1 ? "begins" : "does not begin" ), "with " $1
print $1 " " (index($2,$1) ? "contains" : "does not contain" ) " " $2
print $2, (pos ? "contains an" : "does not contain" ), "\"" $1 "\""
if (pos) {
print $1 " " ( substr($2,index($2,$1))==$1 ? "ends" : "does not end") " with " $2
l=length($1)
Pos=pos
s=$2
while (Pos){
print " " $1 " is at index", x+Pos
x+=Pos
s=substr(s,Pos+l)
Pos=index(s,$1)
}
}
print $2, (substr($2,pos)==$1 ? "ends" : "does not end"), "with " $1
}
}
</lang>
</lang>