diff --git a/docs/adr/0005-switch-to-onig-sys-api.md b/docs/adr/0005-switch-to-onig-sys-api.md index d37e8fea4ef68a62ad68bbf042867782f429838b..5b1a1f7a783ed494e7153a3240d14adc2c6ef55f 100644 --- a/docs/adr/0005-switch-to-onig-sys-api.md +++ b/docs/adr/0005-switch-to-onig-sys-api.md @@ -14,7 +14,7 @@ for examples: - ONIG_REGSET_POSITION_LEAD (returns most left position) - ONIG_OPTION_CAPTURE_GROUP named and no-named group captured. - + ## Decision diff --git a/scie-scanner/src/scanner/scanner.rs b/scie-scanner/src/scanner/scanner.rs index ab2f836a2c1d383eb7544e6088ec5414c4ecf54a..ccea7b740ded04756e0467638985b4651d505e5f 100644 --- a/scie-scanner/src/scanner/scanner.rs +++ b/scie-scanner/src/scanner/scanner.rs @@ -1,4 +1,4 @@ -use onig::Regex; +use onig::{Regex, SearchOptions}; use unicode_segmentation::UnicodeSegmentation; #[derive(Debug, Clone, Serialize)] @@ -68,6 +68,10 @@ impl Scanner { let regex = _regex.unwrap(); let mut capture_indices = vec![]; let _captures = regex.captures(after_pos_str.as_str()); + let zz = regex.search_with_options(&*origin_str.clone(), start_pos as usize, origin_str.clone().len(), SearchOptions::SEARCH_OPTION_NOTBOL, None); + if let Some(pos) = zz { + println!("pos: {:?}", pos); + } if let Some(captures) = _captures { for (_, pos) in captures.iter_pos().enumerate() {