Logo

Programming-Idioms

  • Rust
  • Perl
  • Ada
  • Dart

Idiom #167 Trim prefix

Create the string t consisting of the string s with its prefix p removed (if s starts with p).

var t = s.startsWith(p) ? s.substring(p.length, s.length) : s;
var t = s.startsWith(p) ? s.replaceFirst(p,"") : s;
let t = if s.starts_with(p) { &s[p.len()..] } else { s };
let t = s.trim_start_matches(p);

Warning: this would remove several leading occurrences of p, if present.
See strip_prefix to remove only one occurrence.
let t = s.strip_prefix(p).unwrap_or(s);

Removes p at most once.
if (0 == index $s, $p) {
    my $t = substr $s, length $p;
}
#include <string.h>
size_t l = strlen(p);
const char * t = strncmp(s, p, l) ? s : s + l;

strlen computes the prefix length and strncmp returns zero if the first l characters match

New implementation...