Remove Leading and Trailing Characters¶
Python strip & Rust trim¶
Spaces¶
Result : “sqeeze me”
# Python
# Setup
s = " sqeeze me "
# Get Result
result = s.strip()
// Rust
// Setup
let s = " sqeeze me ";
// Get Result
let result = s.trim();
Any Character¶
Result : “sqeeze me”
# Python
# Setup
s = "~~~~sqeeze me~~~~"
# Get Result
result = s.strip("~")
// Rust
// Setup
let s = "~~~~sqeeze me~~~~";
// Get Result
let result = s.trim_matches('~');
Any Character”s”¶
Result : “sqeeze me”
# Python
# Setup
s = "~!~!sqeeze me!~!~"
# Get Result
result = s.strip("~!")
// Rust
// Setup
let s = "~!~!sqeeze me!~!~";
// Get Result
let patterns : &[_] = &['~', '!'];
let result = s.trim_matches(patterns);
Complex Condition¶
Result : “sqeeze me”
# Python
# Setup
s = "9876sqeeze me5432"
# Get Result
def strip_func(data, func):
length = len(data)
for start, c in enumerate(data):
if not func(c):
break
if start == length-1:
return ""
for end, c in enumerate(reversed(data[start:])):
if not func(c):
break
return data[start:length-end]
result = strip_func(s, lambda c: c.isnumeric())
// Rust
// Setup
let s = "9876sqeeze me5432";
// Get Result
let result = s.trim_matches(|c: char| c.is_numeric());
let result = s.trim_matches(char::is_numeric);
Python lstrip & Rust trim_left¶
Spaces¶
Result : “sqeeze me”
# Python
# Setup
s = " sqeeze me"
# Get Result
result = s.lstrip()
// Rust
// Setup
let s = " sqeeze me";
// Get Result
let result = s.trim_left();
Any Character¶
Result : “sqeeze me”
# Python
# Setup
s = "~~~~sqeeze me"
# Get Result
result = s.lstrip("~")
// Rust
// Setup
let s = "~~~~sqeeze me";
// Get Result
let result = s.trim_left_matches('~');
Any Character”s”¶
Result : “sqeeze me”
# Python
# Setup
s = "~!~!sqeeze me"
# Get Result
result = s.lstrip("~!")
// Rust
// Setup
let s = "~!~!sqeeze me";
// Get Result
let patterns : &[_] = &['~', '!'];
let result = s.trim_left_matches(patterns);
Complex Condition¶
Result : “sqeeze me”
# Python
# Setup
s = "9876sqeeze me"
# Get Result
def strip_func(data, func):
for start, c in enumerate(data):
if not func(c):
break
return data[start:]
result = strip_func(s, lambda c: c.isnumeric())
// Rust
// Setup
let s = "9876sqeeze me";
// Get Result
let result = s.trim_left_matches(|c: char| c.is_numeric());
let result = s.trim_left_matches(char::is_numeric);
Python rstrip & Rust trim_right¶
Spaces¶
Result : “sqeeze me”
# Python
# Setup
s = "sqeeze me "
# Get Result
result = s.rstrip()
// Rust
// Setup
let s = "sqeeze me ";
// Get Result
let result = s.trim_right();
Any Character¶
Result : “sqeeze me”
# Python
# Setup
s = "sqeeze me~~~~"
# Get Result
result = s.rstrip("~")
// Rust
// Setup
let s = "sqeeze me~~~~";
// Get Result
let result = s.trim_right_matches('~');
Any Character”s”¶
Result : “sqeeze me”
# Python
# Setup
s = "sqeeze me!~!~"
# Get Result
result = s.rstrip("~!")
// Rust
// Setup
let s = "sqeeze me!~!~";
// Get Result
let patterns : &[_] = &['~', '!'];
let result = s.trim_right_matches(patterns);
Complex Condition¶
Result : “sqeeze me”
# Python
# Setup
s = "sqeeze me5432"
# Get Result
def strip_func(data, func):
for end, c in enumerate(reversed(data)):
if not func(c):
break
return data[:len(data)-end]
result = strip_func(s, lambda c: c.isnumeric())
// Rust
// Setup
let s = "sqeeze me5432";
// Get Result
let result = s.trim_right_matches(|c: char| c.is_numeric());
let result = s.trim_right_matches(char::is_numeric);