summaryrefslogtreecommitdiffstats
path: root/third_party/rust/regex/examples/shootout-regex-dna-replace.rs
blob: 20694e06f307d5a5cfbe9d8aaa81d5832190abd7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
use std::io::{self, Read};

macro_rules! regex {
    ($re:expr) => {{
        use regex::internal::ExecBuilder;
        ExecBuilder::new($re).build().unwrap().into_regex()
    }};
}

fn main() {
    let mut seq = String::with_capacity(50 * (1 << 20));
    io::stdin().read_to_string(&mut seq).unwrap();
    let ilen = seq.len();

    seq = regex!(">[^\n]*\n|\n").replace_all(&seq, "").into_owned();
    println!("original: {}, replaced: {}", ilen, seq.len());
}