String matching: Difference between revisions
Content added Content deleted
(add sed) |
|||
Line 4,418: | Line 4,418: | ||
loc = "abab".indexOf("ab") //returns 0 |
loc = "abab".indexOf("ab") //returns 0 |
||
loc = "abab".indexOf("ab", loc+1) //returns 2</syntaxhighlight> |
loc = "abab".indexOf("ab", loc+1) //returns 2</syntaxhighlight> |
||
=={{header|sed}}== |
|||
The following programs handle the input lines pairwise: If the first string of a pair contains the second string, the former one is shown. (Which means that non-matching pairs are filtered out.) |
|||
1. Determining if the first string starts with the second string: |
|||
<syntaxhighlight lang="sed">N;/^\(.*\).*\n\1$/!d;s/\n.*//</syntaxhighlight> |
|||
2. Determining if the first string contains the second string at any location: |
|||
<syntaxhighlight lang="sed">N;/.*\(.*\).*\n\1$/!d;s/\n.*//</syntaxhighlight> |
|||
3. Determining if the first string ends with the second string: |
|||
<syntaxhighlight lang="sed">N;/\(.*\)\n\1$/!d;s/\n.*//</syntaxhighlight> |
|||
{{out}} |
|||
<pre> |
|||
$ printf '%s\n' abcd bcd wxyz wxy | sed -f match1.sed |
|||
wxyz |
|||
$ printf '%s\n' abcd be vwxyz wxy | sed -f match2.sed |
|||
vwxyz |
|||
$ printf '%s\n' abcd abc wxyz xyz | sed -f match3.sed |
|||
wxyz |
|||
</pre> |
|||
=={{header|Seed7}}== |
=={{header|Seed7}}== |