IPv4: 10進数表記で 「3桁:3桁:3桁:3桁」
*3桁の数字は、0 〜 255 の範囲
例:192.168.1.10
fn main() { let str = "192.168.33.10:53218".to_string(); let pos = str.find(':').unwrap(); println!("{}", &str[..pos]); }
Compiling app v0.1.0 (/home/vagrant/dev/rust/app)
Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.46s
Running `target/debug/app`
192.168.33.10
“:”があるかないかを判定してから、スライスをした方が良さそう。 ただ、これ、IPv4だけなんだよな… IPv6だったらどうしよう…
pub fn slice_ipv4(str: &String) -> String { if str.find(':').is_some() { let pos = str.find(':').unwrap(); return (&str[..pos]).to_string() } return str.to_string() }