summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRyan Geary <rtgnj42@gmail.com>2019-09-11 22:14:57 -0400
committerRyan Geary <rtgnj42@gmail.com>2019-09-11 22:14:57 -0400
commitda7a536fa6e60ac27e033da1918b9428738a5ed6 (patch)
treea654ef3e4d2a0ae9cb5deb86d44c88fef99b9831
parent5a5a77e88fd78e1a301f30f295e8fab7912ce12a (diff)
Add regex matching with field separator
-rw-r--r--src/main.rs17
1 files changed, 16 insertions, 1 deletions
diff --git a/src/main.rs b/src/main.rs
index 60d769e..d901b43 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -16,7 +16,22 @@ enum Choice {
impl Choice {
fn print_choice(&self, line: &String, opt: &Opt) {
- let words = line.split_whitespace().into_iter().enumerate();
+ let re = Regex::new(match &opt.field_separator {
+ Some(s) => s,
+ None => "[[:space:]]",
+ })
+ .unwrap_or_else(|_| {
+ panic!(
+ "Failed to compile regular expression: {:?}",
+ opt.field_separator
+ )
+ });
+
+ let words = re
+ .split(line)
+ .into_iter()
+ .filter(|s| !s.is_empty())
+ .enumerate();
match self {
Choice::Field(i) => {