Separate Strings by Specific Separators¶
Python split & Rust split_whitespace¶
by Whitespace (no upper bound)¶
result : [“some”, “useful”, “data”]
# Python
# Setup
s = " some useful data "
# Get Result
result = s.split()
// Rust
// Setup
let s = " some useful data ";
// Get Result
// .split_whitespace() will return an iterator
let result : Vec<_> = s.split_whitespace().collect();
let result : Vec<&str> = s.split_whitespace().collect();
Notice: If you use .split(‘ ‘) in Rust, you will get a different result. Like this :
# Python
s.split(" ") # ["", "", "", "", "some", "useful", "data", "", "", "", ""]
// Rust
let result : Vec<_> = s.split(' ').collect(); // ["", "", "", "", "some", "useful", "data", "", "", "", ""]
let result : Vec<&str> = s.split(' ').collect(); // ["", "", "", "", "some", "useful", "data", "", "", "", ""]
by Whitespace (with upper bound)¶
result : [“some”, “useful data “]
# Python
# Setup
s = " some useful data "
# Get Result
result = s.split(maxsplit=1)
// Rust
// Setup
let s = " some useful data ";
// Get Result
[TODO]
Python split & Rust split¶
by Any Character (no upper bound)¶
result : [“col1”, “col2”, “col3”, “col4”]
# Python
# Setup
s = "col1,col2,col3,col4"
# Get Result
result = s.split(',')
// Rust
// Setup
let s = "col1,col2,col3,col4";
// Get Result
let result: Vec<_> = s.split(',').collect();
by Any Character”s” (no upper bound)¶
result : [“col1”, “”, “col2”, “”, “col3”, “”, “col4”]
# Python
# Setup
s = "col1!?col2?!col3!?col4"
# Get Result
[TODO]
// Rust
// Setup
let s = "col1!?col2?!col3!?col4";
// Get Result
let result: Vec<_> = s.split(|c: char| "!?".contains(c)).collect();
let result: Vec<_> = s.split(|c: char| str::contains("?!", c)).collect();
by Any String (no upper bound)¶
result : [“col1”, “col2”, “col3”, “col4”]
# Python
# Setup
s = "col1::col2::col3::col4"
# Get Result
result = s.split("::")
// Rust
// Setup
let s = "col1::col2::col3::col4";
// Get Result
let result: Vec<_> = s.split("::").collect();
by Any String”s” (no upper bound)¶
result : [“col1”, “col2”, “col3”, “col4”]
# Python
# Setup
s = "col1//col2::col3%%col4"
# Get Result
[TODO]
// Rust
// Setup
let s = "col1//col2::col3%%col4";
// Get Result
[TODO]
by Complex Condition (no upper bound)¶
by Regular Expression (no upper bound)¶
Python split & Rust splitn¶
by Any Character (with upper bound)¶
result : [“col1”, “col2”, “col3,col4”]
# Python
# Setup
s = "col1,col2,col3,col4"
# Get Result
result = s.split(',', 2) # maxsplit = 2, max length is 3
// Rust
// Setup
let s = "col1,col2,col3,col4";
// Get Result
let result: Vec<_> = s.splitn(3, ',').collect(); // count = 3, max length is 3
by Any Character”s” (with upper bound)¶
result : [“col1”, “”, “col2”, “”, “col3!?col4”]
# Python
# Setup
s = "col1!?col2?!col3!?col4"
# Get Result
[TODO]
// Rust
// Setup
let s = "col1!?col2?!col3!?col4";
// Get Result
let result: Vec<_> = s.splitn(5, |c: char| "!?".contains(c)).collect(); // count = 3, max length is 3
let result: Vec<_> = s.splitn(5, |c: char| str::contains("?!", c)).collect();
by Any String (with upper bound)¶
result : [“col1”, “col2”, “col3::col4”]
# Python
# Setup
s = "col1::col2::col3::col4"
# Get Result
result = s.split("::", 2) # maxsplit = 2, max length is 3
// Rust
// Setup
let s = "col1::col2::col3::col4";
// Get Result
let result: Vec<_> = s.splitn(3, "::").collect(); // count = 3, max length is 3
by Any String”s” (with upper bound)¶
by Complex Condition (with upper bound)¶
by Regular Expression (with upper bound)¶
Python rsplit & Rust rsplit¶
Python rsplit & Rust rsplitn¶
Python splitlines & Rust lines¶
result : [“We”, “Are”, “The”, “World”, “”, ”!!!”]
# Python
# Setup
s = "We\nAre\nThe\nWorld\n\n!!!"
# Get Result
result = s.splitlines()
// Rust
// Setup
let s = "We\nAre\nThe\nWorld\n\n!!!";
// Get Result
let result: Vec<_> = s.lines().collect();