Skip to content

nfa vs dfa mismatch #345

@BurntSushi

Description

@BurntSushi

This program does not pass all asserts:

extern crate regex;

use regex::internal::ExecBuilder;

pub const HAYSTACK_BYTES: &'static [u8] = b"\x3D\x86\x3D\x79";

fn main() {
    let pattern = r"=\b";
    let haystack = &HAYSTACK_BYTES;
    let re0 = ExecBuilder::new(pattern).build().unwrap().into_byte_regex();
    let re1 = ExecBuilder::new(pattern).nfa().build().unwrap().into_byte_regex();
    assert_eq!(re0.is_match(haystack), re1.is_match(haystack));
    assert_eq!(re0.find_iter(haystack).collect::<Vec<_>>(),
               re1.find_iter(haystack).collect::<Vec<_>>());
}

Found by @lukaslueg in #321

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions