This crate provides a safe wrapper around the
Oniguruma regular expression library.
use onig::Regex;
let regex = Regex::new("e(l+)").unwrap();
for (i, pos) in regex.captures("hello").unwrap().iter_pos().enumerate() {
match pos {
Some((beg, end)) =>
println!("Group {} captured in position {}:{}", i, beg, end),
None =>
println!("Group {} is not captured", i)
}
}
REGEX_OPTION_EXTEND |
Extended pattern form.
|
REGEX_OPTION_FIND_LONGEST |
Find longest match.
|
REGEX_OPTION_FIND_NOT_EMPTY |
Ignore empty match.
|
REGEX_OPTION_IGNORECASE |
Ambiguity match on.
|
REGEX_OPTION_MULTILINE |
'.' match with newline.
|
REGEX_OPTION_NEGATE_SINGLELINE |
Clear OPTION_SINGLELINE which is enabled on
SYNTAX_POSIX_BASIC , SYNTAX_POSIX_EXTENDED ,
SYNTAX_PERL , SYNTAX_PERL_NG , SYNTAX_JAVA .
|
REGEX_OPTION_NONE |
Default options.
|
REGEX_OPTION_SINGLELINE |
'^' -> '\A' , '$' -> '\Z' .
|
SEARCH_OPTION_CAPTURE_GROUP |
Named and no-named group captured.
|
SEARCH_OPTION_DONT_CAPTURE_GROUP |
Only named group captured.
|
SEARCH_OPTION_NONE |
Default options.
|
SEARCH_OPTION_NOTBOL |
String head isn't considered as begin of line.
|
SEARCH_OPTION_NOTEOL |
String end isn't considered as end of line.
|
SYNTAX_BEHAVIOR_ALLOW_DOUBLE_RANGE_OP_IN_CC |
[0-9-a]=[0-9\-a]
|
SYNTAX_BEHAVIOR_ALLOW_INTERVAL_LOW_ABBREV |
{,n} => {0,n}
|
SYNTAX_BEHAVIOR_ALLOW_INVALID_INTERVAL |
{???
|
SYNTAX_BEHAVIOR_ALLOW_MULTIPLEX_DEFINITION_NAME |
(?<x>)(?<x>)
|
SYNTAX_BEHAVIOR_ALLOW_UNMATCHED_CLOSE_SUBEXP |
...)...
|
SYNTAX_BEHAVIOR_BACKSLASH_ESCAPE_IN_CC |
[..\w..] etc..
|
SYNTAX_BEHAVIOR_CAPTURE_ONLY_NAMED_GROUP |
See Oniguruma documenation
|
SYNTAX_BEHAVIOR_CONTEXT_INDEP_REPEAT_OPS |
?, *, +, {n,m}
|
SYNTAX_BEHAVIOR_CONTEXT_INVALID_REPEAT_OPS |
error or ignore
|
SYNTAX_BEHAVIOR_DIFFERENT_LEN_ALT_LOOK_BEHIND |
(?<=a|bc)
|
SYNTAX_BEHAVIOR_FIXED_INTERVAL_IS_GREEDY_ONLY |
a{n}?=(?:a{n})?
|
SYNTAX_BEHAVIOR_NOT_NEWLINE_IN_NEGATIVE_CC |
[^...]
|
SYNTAX_BEHAVIOR_STRICT_CHECK_BACKREF |
/(\1)/,/\1()/ ..
|
SYNTAX_BEHAVIOR_WARN_CC_OP_NOT_ESCAPED |
[,-,]
|
SYNTAX_BEHAVIOR_WARN_REDUNDANT_NESTED_REPEAT |
(?:a*)+
|
SYNTAX_OPERATOR_ASTERISK_ZERO_INF |
*
|
SYNTAX_OPERATOR_ATMARK_CAPTURE_HISTORY |
(?@..),(?@<x>..)
|
SYNTAX_OPERATOR_BRACE_INTERVAL |
{lower,upper}
|
SYNTAX_OPERATOR_BRACKET_CC |
[...]
|
SYNTAX_OPERATOR_CCLASS_SET_OP |
[...&&..[..]..]
|
SYNTAX_OPERATOR_DECIMAL_BACKREF |
\num
|
SYNTAX_OPERATOR_DOT_ANYCHAR |
.
|
SYNTAX_OPERATOR_ESC_AZ_BUF_ANCHOR |
\A, \Z, \z
|
SYNTAX_OPERATOR_ESC_BRACE_INTERVAL |
\{lower,upper\}
|
SYNTAX_OPERATOR_ESC_B_WORD_BOUND |
\b, \B
|
SYNTAX_OPERATOR_ESC_CAPITAL_C_BAR_CONTROL |
\C-x
|
SYNTAX_OPERATOR_ESC_CAPITAL_G_BEGIN_ANCHOR |
\G
|
SYNTAX_OPERATOR_ESC_CAPITAL_M_BAR_META |
\M-x
|
SYNTAX_OPERATOR_ESC_CAPITAL_Q_QUOTE |
\Q...\E
|
SYNTAX_OPERATOR_ESC_CONTROL_CHARS |
\n,\r,\t,\a ...
|
SYNTAX_OPERATOR_ESC_C_CONTROL |
\cx
|
SYNTAX_OPERATOR_ESC_D_DIGIT |
\d, \D
|
SYNTAX_OPERATOR_ESC_GNU_BUF_ANCHOR |
\ , \'`
|
SYNTAX_OPERATOR_ESC_G_SUBEXP_CALL |
\g<name>, \g<n>
|
SYNTAX_OPERATOR_ESC_H_XDIGIT |
\h, \H
|
SYNTAX_OPERATOR_ESC_K_NAMED_BACKREF |
\k<name>
|
SYNTAX_OPERATOR_ESC_LPAREN_SUBEXP |
\(...\)
|
SYNTAX_OPERATOR_ESC_LTGT_WORD_BEGIN_END |
\<. \>
|
SYNTAX_OPERATOR_ESC_OCTAL3 |
\OOO
|
SYNTAX_OPERATOR_ESC_P_BRACE_CHAR_PROPERTY |
\p{...}, \P{...}
|
SYNTAX_OPERATOR_ESC_P_BRACE_CIRCUMFLEX_NOT |
\p{^..}, \P{^..}
|
SYNTAX_OPERATOR_ESC_S_WHITE_SPACE |
\s, \S
|
SYNTAX_OPERATOR_ESC_U_HEX4 |
\uHHHH
|
SYNTAX_OPERATOR_ESC_VBAR_ALT |
\|
|
SYNTAX_OPERATOR_ESC_V_VTAB |
\v as VTAB
|
SYNTAX_OPERATOR_ESC_W_WORD |
\w, \W
|
SYNTAX_OPERATOR_ESC_X_BRACE_HEX8 |
\x{7HHHHHHH}
|
SYNTAX_OPERATOR_ESC_X_HEX2 |
\xHH
|
SYNTAX_OPERATOR_INEFFECTIVE_ESCAPE |
\
|
SYNTAX_OPERATOR_LINE_ANCHOR |
^, $
|
SYNTAX_OPERATOR_LPAREN_SUBEXP |
(...)
|
SYNTAX_OPERATOR_OPTION_PERL |
(?imsx),(?-imsx)
|
SYNTAX_OPERATOR_OPTION_RUBY |
(?imx), (?-imx)
|
SYNTAX_OPERATOR_PLUS_ONE_INF |
+
|
SYNTAX_OPERATOR_PLUS_POSSESSIVE_INTERVAL |
{n,m}+
|
SYNTAX_OPERATOR_PLUS_POSSESSIVE_REPEAT |
?+,*+,++
|
SYNTAX_OPERATOR_POSIX_BRACKET |
[:xxxx:]
|
SYNTAX_OPERATOR_QMARK_GROUP_EFFECT |
(?...)
|
SYNTAX_OPERATOR_QMARK_LT_NAMED_GROUP |
(?<name>...)
|
SYNTAX_OPERATOR_QMARK_NON_GREEDY |
??,*?,+?,{n,m}?
|
SYNTAX_OPERATOR_QMARK_ZERO_ONE |
?
|
SYNTAX_OPERATOR_VBAR_ALT |
|
|