Beispiel #1
0
def test_regset_search_with_flags():
    regset_A = onigurumacffi.compile_regset(r'\Afoo', 'foo')
    idx, match = regset_A.search('foo')
    assert idx == 0
    assert match is not None

    idx, match = regset_A.search(
        'foo',
        flags=onigurumacffi.OnigSearchOption.NOT_BEGIN_STRING,
    )
    assert idx == 1
    assert match is not None

    regset_G = onigurumacffi.compile_regset(r'\Gfoo', 'foo')
    idx, match = regset_G.search('afoo', start=1)
    assert idx == 0
    assert match is not None

    idx, match = regset_G.search(
        'afoo',
        start=1,
        flags=onigurumacffi.OnigSearchOption.NOT_BEGIN_POSITION,
    )
    assert idx == 1
    assert match is not None
Beispiel #2
0
def test_regset_returns_first_regex_when_equal():
    regset = onigurumacffi.compile_regset('a', '[^z]')
    idx, match = regset.search('zzza')
    assert idx == 0
    assert match is not None
    assert match.group() == 'a'
Beispiel #3
0
def test_regset_empty_match_empty_string():
    regset = onigurumacffi.compile_regset('a', '.*')
    idx, match = regset.search('')
    assert idx == 1
    assert match is not None
    assert match.group() == ''
Beispiel #4
0
def test_regset_repr():
    ret = repr(onigurumacffi.compile_regset('abc', 'def'))
    assert ret == "onigurumacffi.compile_regset('abc', 'def')"
Beispiel #5
0
import pytest

import onigurumacffi

FOO_RE = onigurumacffi.compile('^foo')
ABC_RE = onigurumacffi.compile('(a+)B+(c+)')
UNICODE_RE = onigurumacffi.compile('.*?(🙃+)')
REGSET = onigurumacffi.compile_regset('a+', 'b+', 'c+')


def test_regex_compiles():
    assert FOO_RE is not None


def test_regex_repr():
    assert repr(FOO_RE) == "onigurumacffi.compile('^foo')"


def test_regex_compile_failure():
    with pytest.raises(onigurumacffi.OnigError):
        onigurumacffi.compile('(')


def test_regex_number_of_captures():
    assert FOO_RE.number_of_captures() == 0
    assert ABC_RE.number_of_captures() == 2
    assert UNICODE_RE.number_of_captures() == 1


def test_match_failure():
    assert FOO_RE.match('bar') is None
 def _set_no_A_no_G(self) -> onigurumacffi._RegSet:
     patterns = (_replace_esc(p, 'AG') for p in self._patterns)
     return onigurumacffi.compile_regset(*patterns)
 def _set(self) -> onigurumacffi._RegSet:
     return onigurumacffi.compile_regset(*self._patterns)
Beispiel #8
0
 def __init__(self, *s: str) -> None:
     self._patterns = s
     self._set = onigurumacffi.compile_regset(*self._patterns)