本文整理汇总了Python中pypy.rlib.rsre.rsre_core.match函数的典型用法代码示例。如果您正苦于以下问题:Python match函数的具体用法?Python match怎么用?Python match使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了match函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_not_literal
def test_not_literal(self):
r = get_code(r"[^a]")
assert rsre_core.match(r, "A")
assert not rsre_core.match(r, "a")
r = get_code(r"[^a]+$")
assert rsre_core.match(r, "Bx123")
assert not rsre_core.match(r, "--a--")
示例2: test_lookbehind
def test_lookbehind(self):
r = get_code(r"([a-z]*)(?<=de)")
assert rsre_core.match(r, "ade")
res = rsre_core.match(r, "adefg")
assert res is not None and res.get_mark(1) == 3
assert not rsre_core.match(r, "abc")
assert not rsre_core.match(r, "X")
assert not rsre_core.match(r, "eX")
示例3: test_not_literal_ignore
def test_not_literal_ignore(self):
r = get_code(r"(?i)[^a]")
assert rsre_core.match(r, "G")
assert not rsre_core.match(r, "a")
assert not rsre_core.match(r, "A")
r = get_code(r"(?i)[^a]+$")
assert rsre_core.match(r, "Gx123")
assert not rsre_core.match(r, "--A--")
示例4: test_group_branch
def test_group_branch(self):
r_code5 = get_code(r'<abc>(ab|c)</abc>')
res = rsre_core.match(r_code5, '<abc>ab</abc>def')
assert (res.get_mark(0), res.get_mark(1)) == (5, 7)
res = rsre_core.match(r_code5, '<abc>c</abc>def')
assert (res.get_mark(0), res.get_mark(1)) == (5, 6)
res = rsre_core.match(r_code5, '<abc>de</abc>def')
assert res is None
示例5: test_group_branch_max_until
def test_group_branch_max_until(self):
r_code6 = get_code(r'<abc>(ab|c)*a</abc>')
res = rsre_core.match(r_code6, '<abc>ccabcccaba</abc>def')
assert (res.get_mark(0), res.get_mark(1)) == (12, 14)
r_code7 = get_code(r'<abc>((ab)|(c))*a</abc>')
res = rsre_core.match(r_code7, '<abc>ccabcccaba</abc>def')
assert (res.get_mark(0), res.get_mark(1)) == (12, 14)
assert (res.get_mark(2), res.get_mark(3)) == (12, 14)
assert (res.get_mark(4), res.get_mark(5)) == (11, 12)
示例6: test_min_until_0_65535
def test_min_until_0_65535(self):
r_code2 = get_code(r'<abc>(?:xy)*?xy</abc>')
res = rsre_core.match(r_code2, '<abc></abc>def')
assert res is None
res = rsre_core.match(r_code2, '<abc>xy</abc>def')
assert res is not None
res = rsre_core.match(r_code2, '<abc>xyxyxy</abc>def')
assert res is not None
res = rsre_core.match(r_code2, '<abc>' + 'xy'*1000 + '</abc>def')
assert res is not None
示例7: test_groupref_exists
def test_groupref_exists(self):
r = get_code(r"((a)|(b))c(?(2)d)$")
assert not rsre_core.match(r, "ac")
assert rsre_core.match(r, "acd")
assert rsre_core.match(r, "bc")
assert not rsre_core.match(r, "bcd")
#
r = get_code(r"((a)|(b))c(?(2)d|e)$")
assert not rsre_core.match(r, "ac")
assert rsre_core.match(r, "acd")
assert not rsre_core.match(r, "ace")
assert not rsre_core.match(r, "bc")
assert not rsre_core.match(r, "bcd")
assert rsre_core.match(r, "bce")
示例8: test_empty_maxuntil
def test_empty_maxuntil(self):
r_code, r = get_code_and_re(r'(a?)+y')
assert r.match('y')
res = rsre_core.match(r_code, 'y')
assert res
#
r_code, r = get_code_and_re(r'(a?){4,6}y')
assert r.match('y')
res = rsre_core.match(r_code, 'y')
assert res
#
r_code, r = get_code_and_re(r'(a?)*y')
assert r.match('y')
res = rsre_core.match(r_code, 'y')
assert res
示例9: test_empty_minuntil
def test_empty_minuntil(self):
r_code, r = get_code_and_re(r'(a?)+?y')
#assert not r.match('z') -- CPython bug (at least 2.5) eats all memory
res = rsre_core.match(r_code, 'z')
assert not res
#
r_code, r = get_code_and_re(r'(a?){4,6}?y')
assert not r.match('z')
res = rsre_core.match(r_code, 'z')
assert not res
#
r_code, r = get_code_and_re(r'(a?)*?y')
#assert not r.match('z') -- CPython bug (at least 2.5) eats all memory
res = rsre_core.match(r_code, 'z')
assert not res
示例10: test_min_until_3_5
def test_min_until_3_5(self):
r_code2, r = get_code_and_re(r'<abc>(?:xy){3,5}?xy</abc>')
for i in range(8):
s = '<abc>' + 'xy'*i + '</abc>defdefdefdefdef'
assert (r.match(s) is not None) is (3 <= i-1 <= 5)
res = rsre_core.match(r_code2, s)
assert (res is not None) is (3 <= i-1 <= 5)
示例11: run_external
def run_external(t, use_search):
from pypy.rlib.rsre.test.re_tests import SUCCEED, FAIL, SYNTAX_ERROR
pattern, s, outcome = t[:3]
if len(t) == 5:
repl, expected = t[3:5]
else:
assert len(t) == 3
print 'trying:', t
try:
obj = get_code(pattern)
except re.error:
if outcome == SYNTAX_ERROR:
return # Expected a syntax error
raise
if outcome == SYNTAX_ERROR:
raise Exception("this should have been a syntax error")
#
if use_search:
result = rsre_core.search(obj, s)
else:
# Emulate a poor man's search() with repeated match()s
for i in range(len(s)+1):
result = rsre_core.match(obj, s, start=i)
if result:
break
#
if outcome == FAIL:
if result is not None:
raise Exception("succeeded incorrectly")
elif outcome == SUCCEED:
if result is None:
raise Exception("failed incorrectly")
# Matched, as expected, so now we compute the
# result string and compare it to our expected result.
start, end = result.span(0)
vardict={'found': result.group(0),
'groups': result.group(),
}#'flags': result.re.flags}
for i in range(1, 100):
try:
gi = result.group(i)
# Special hack because else the string concat fails:
if gi is None:
gi = "None"
except IndexError:
gi = "Error"
vardict['g%d' % i] = gi
#for i in result.re.groupindex.keys():
# try:
# gi = result.group(i)
# if gi is None:
# gi = "None"
# except IndexError:
# gi = "Error"
# vardict[i] = gi
repl = eval(repl, vardict)
if repl != expected:
raise Exception("grouping error: %r should be %r" % (repl,
expected))
示例12: test_minuntil_lastmark_restore
def test_minuntil_lastmark_restore(self):
r_code9, r9 = get_code_and_re(r'(x|yz)+?(y)??c')
match = r9.match('xyzxc')
assert match.span(1) == (3, 4)
assert match.span(2) == (-1, -1)
res = rsre_core.match(r_code9, 'xyzxc')
assert (res.get_mark(0), res.get_mark(1)) == (3, 4)
assert (res.get_mark(2), res.get_mark(3)) == (-1, -1)
示例13: test_minuntil_bug
def test_minuntil_bug(self):
r_code9, r9 = get_code_and_re(r'((x|yz)+?(y)??c)*')
match = r9.match('xycxyzxc')
assert match.span(2) == (6, 7)
#assert match.span(3) == (1, 2) --- bug of CPython
res = rsre_core.match(r_code9, 'xycxyzxc')
assert (res.get_mark(2), res.get_mark(3)) == (6, 7)
assert (res.get_mark(4), res.get_mark(5)) == (1, 2)
示例14: test_assert_not_group
def test_assert_not_group(self):
r = get_code(r"abc(?!(de)f)(.)")
res = rsre_core.match(r, "abcdeFghi")
assert res is not None
assert res.span(2) == (3, 4)
# this I definitely classify as Horrendously Implementation Dependent.
# CPython answers (3, 5).
assert res.span(1) == (-1, -1)
示例15: test_groupref_ignore
def test_groupref_ignore(self):
r = get_code(r"(?i)(xx+)\1+$") # match non-prime numbers of x
assert not rsre_core.match(r, "xX")
assert not rsre_core.match(r, "xxX")
assert rsre_core.match(r, "Xxxx")
assert not rsre_core.match(r, "xxxXx")
assert rsre_core.match(r, "xXxxxx")
assert not rsre_core.match(r, "xxxXxxx")
assert rsre_core.match(r, "xxxxxxXx")
assert rsre_core.match(r, "xxxXxxxxx")