String matching: Difference between revisions

Content added Content deleted
m (Added bc and dc to list of omissions)
(Updated D entry)
Line 607: Line 607:


=={{header|D}}==
=={{header|D}}==
<lang d>import std.stdio: writeln;
<lang d>void main() {
import std.stdio;
import std.algorithm: startsWith, endsWith, find, countUntil;
import std.algorithm: startsWith, endsWith, find, countUntil;


"abcd".startsWith("ab").writeln; // true
void main() {
writeln("abcd".startsWith("ab")); // true
"abcd".endsWith("zn").writeln; // false
writeln("abcd".endsWith("zn")); // false
"abab".find("bb").writeln; // empty array (no match)
writeln("abab".find("bb")); // empty array (no match)
"abcd".find("bc").writeln; // "bcd" (substring start
writeln("abcd".find("bc")); // "bcd" (substring start
// at match)
// at match)
writeln("abab".countUntil("bb")); // -1 (no match)
"abab".countUntil("bb").writeln; // -1 (no match)
writeln("abab".countUntil("ba")); // 1 (index of 1st match)
"abab".countUntil("ba").writeln; // 1 (index of 1st match)


// std.algorithm.startsWith also works on arrays and ranges:
// std.algorithm.startsWith also works on arrays and ranges:
writeln([1, 2, 3].countUntil(3)); // 2
[1, 2, 3].countUntil(3).writeln; // 2
writeln([1, 2, 3].countUntil([2, 3])); // 1
[1, 2, 3].countUntil([2, 3]).writeln; // 1
}</lang>
}</lang>
{{out}}
{{out}}