Crate onig [] [src]

This crate provides a safe wrapper around the Oniguruma regular expression library.

Examples

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)
    }
}

Structs

CaptureNames

CaptureNames is an iterator over named groups as a tuple with the group name and group indexes.

CaptureTreeNode
CaptureTreeNodeIter
Captures

Captures represents a group of captured strings for a single match.

Error

This struture represents an error from the underlying Oniguruma libray.

FindCaptures

An iterator that yields all non-overlapping capture groups matching a particular regular expression.

FindMatches

An iterator over all non-overlapping matches for a particular string.

Regex

This struct is a wrapper around an Oniguruma regular expression pointer. This represents a compiled regex which can be used in search and match operations.

RegexOptions

Regex parsing and compilation options.

RegexSplits

Yields all substrings delimited by a regular expression match.

RegexSplitsN

Yields at most N substrings delimited by a regular expression match.

Region

Represents a set of capture groups found in a search or match.

SearchOptions

Regex evaluation options.

SubCaptures

An iterator over capture groups for a particular match of a regular expression.

SubCapturesPos

An iterator over capture group positions for a particular match of a regular expression.

Syntax
SyntaxBehavior
SyntaxOperator

Constants

REGEX_OPTION_CAPTURE_GROUP

Named and no-named group captured.

REGEX_OPTION_DONT_CAPTURE_GROUP

Only named group captured.

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_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

|

Traits

Replacer

Replacer describes types that can be used to replace matches in a string.

Functions

copyright

Get Copyright

version

Get Version