⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test_reg.py

📁 minimal python variant for small footprint apps like embedded apps
💻 PY
字号:
from test_support import verboseimport regexfrom regex_syntax import *re = 'a+b+c+'print 'no match:', regex.match(re, 'hello aaaabcccc world')print 'successful search:', regex.search(re, 'hello aaaabcccc world')try:    cre = regex.compile('\(' + re)except regex.error:    print 'caught expected exception'else:    print 'expected regex.error not raised'print 'failed awk syntax:', regex.search('(a+)|(b+)', 'cdb')prev = regex.set_syntax(RE_SYNTAX_AWK)print 'successful awk syntax:', regex.search('(a+)|(b+)', 'cdb')regex.set_syntax(prev)print 'failed awk syntax:', regex.search('(a+)|(b+)', 'cdb')re = '\(<one>[0-9]+\) *\(<two>[0-9]+\)'print 'matching with group names and compile()'cre = regex.compile(re)print cre.match('801 999')try:    print cre.group('one')except regex.error:    print 'caught expected exception'else:    print 'expected regex.error not raised'print 'matching with group names and symcomp()'cre = regex.symcomp(re)print cre.match('801 999')print cre.group(0)print cre.group('one')print cre.group(1, 2)print cre.group('one', 'two')print 'realpat:', cre.realpatprint 'groupindex:', cre.groupindexre = 'world'cre = regex.compile(re)print 'not case folded search:', cre.search('HELLO WORLD')cre = regex.compile(re, regex.casefold)print 'case folded search:', cre.search('HELLO WORLD')print '__members__:', cre.__members__print 'regs:', cre.regsprint 'last:', cre.lastprint 'translate:', len(cre.translate)print 'givenpat:', cre.givenpatprint 'match with pos:', cre.match('hello world', 7)print 'search with pos:', cre.search('hello world there world', 7)print 'bogus group:', cre.group(0, 1, 3)try:    print 'no name:', cre.group('one')except regex.error:    print 'caught expected exception'else:    print 'expected regex.error not raised'from regex_tests import *if verbose: print 'Running regex_tests test suite'for t in tests:    pattern=s=outcome=repl=expected=None    if len(t)==5:        pattern, s, outcome, repl, expected = t    elif len(t)==3:        pattern, s, outcome = t     else:        raise ValueError, ('Test tuples should have 3 or 5 fields',t)    try:        obj=regex.compile(pattern)    except regex.error:        if outcome==SYNTAX_ERROR: pass    # Expected a syntax error        else:             # Regex syntax errors aren't yet reported, so for             # the official test suite they'll be quietly ignored.            pass            #print '=== Syntax error:', t    else:        try:            result=obj.search(s)        except regex.error, msg:            print '=== Unexpected exception', t, repr(msg)        if outcome==SYNTAX_ERROR:            # This should have been a syntax error; forget it.            pass        elif outcome==FAIL:            if result==-1: pass   # No match, as expected            else: print '=== Succeeded incorrectly', t        elif outcome==SUCCEED:            if result!=-1:                # Matched, as expected, so now we compute the                # result string and compare it to our expected result.                start, end = obj.regs[0]                found=s[start:end]                groups=obj.group(1,2,3,4,5,6,7,8,9,10)                vardict=vars()                for i in range(len(groups)):                    vardict['g'+str(i+1)]=str(groups[i])                repl=eval(repl)                if repl!=expected:                    print '=== grouping error', t, repr(repl)+' should be '+repr(expected)            else:                print '=== Failed incorrectly', t

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -