reg.test
来自「tcl是工具命令语言」· TEST 代码 · 共 1,001 行 · 第 1/2 页
TEST
1,001 行
f 22 Q "a{1,3}b" bm 23 Q "a{1,}b" aab aabf 24 Q "a{2,3}b" abm 25 Q "a{2,3}b" aaaab aaabf 26 Q "a{2,}b" abm 27 Q "a{2,}b" aaaab aaaabdoing 9 "brackets"m 1 & {a[bc]} ac acm 2 & {a[-]} a- a-m 3 & {a[[.-.]]} a- a-m 4 &L {a[[.zero.]]} a0 a0m 5 &LM {a[[.zero.]-9]} a2 a2m 6 &M {a[0-[.9.]]} a2 a2m 7 &+L {a[[=x=]]} ax axm 8 &+L {a[[=x=]]} ay ayf 9 &+L {a[[=x=]]} aze 10 & {a[0-[=x=]]} ERANGEm 11 &L {a[[:digit:]]} a0 a0e 12 & {a[[:woopsie:]]} ECTYPEf 13 &L {a[[:digit:]]} abe 14 & {a[0-[:digit:]]} ERANGEm 15 &LP {[[:<:]]a} a am 16 &LP {a[[:>:]]} a ae 17 & {a[[..]]b} ECOLLATEe 18 & {a[[==]]b} ECOLLATEe 19 & {a[[::]]b} ECTYPEe 20 & {a[[.a} EBRACKe 21 & {a[[=a} EBRACKe 22 & {a[[:a} EBRACKe 23 & {a[} EBRACKe 24 & {a[b} EBRACKe 25 & {a[b-} EBRACKe 26 & {a[b-c} EBRACKm 27 &M {a[b-c]} ab abm 28 & {a[b-b]} ab abm 29 &M {a[1-2]} a2 a2e 30 & {a[c-b]} ERANGEe 31 & {a[a-b-c]} ERANGEm 32 &M {a[--?]b} a?b a?bm 33 & {a[---]b} a-b a-bm 34 & {a[]b]c} a]c a]cm 35 EP {a[\]]b} a]b a]bf 36 bE {a[\]]b} a]bm 37 bE {a[\]]b} "a\\]b" "a\\]b"m 38 eE {a[\]]b} "a\\]b" "a\\]b"m 39 EP {a[\\]b} "a\\b" "a\\b"m 40 eE {a[\\]b} "a\\b" "a\\b"m 41 bE {a[\\]b} "a\\b" "a\\b"e 42 - {a[\Z]b} EESCAPEm 43 & {a[[b]c} "a\[c" "a\[c"m 44 EMP* {a[\u00fe-\u0507][\u00ff-\u0300]b} \ "a\u0102\u02ffb" "a\u0102\u02ffb"doing 10 "anchors and newlines"m 1 & ^a a af 2 &^ ^a ai 3 &N ^ a {0 -1}i 4 & {a$} aba {2 2}f 5 {&$} {a$} ai 6 &N {$} ab {2 1}m 7 &n ^a a am 8 &n "^a" "b\na" "a"i 9 &w "^a" "a\na" {0 0}i 10 &n^ "^a" "a\na" {2 2}m 11 &n {a$} a am 12 &n "a\$" "a\nb" "a"i 13 &n "a\$" "a\na" {0 0}i 14 N ^^ a {0 -1}m 15 b ^^ ^ ^i 16 N {$$} a {1 0}m 17 b {$$} "\$" "\$"m 18 &N {^$} "" ""f 19 &N {^$} ai 20 &nN "^\$" "a\n\nb" {2 1}m 21 N {$^} "" ""m 22 b {$^} "\$^" "\$^"m 23 P {\Aa} a am 24 ^P {\Aa} a af 25 ^nP {\Aa} "b\na"m 26 P {a\Z} a am 27 {$P} {a\Z} a af 28 {$nP} {a\Z} "a\nb"e 29 - ^* BADRPTe 30 - {$*} BADRPTe 31 - {\A*} BADRPTe 32 - {\Z*} BADRPTdoing 11 "boundary constraints"m 1 &LP {[[:<:]]a} a am 2 &LP {[[:<:]]a} -a af 3 &LP {[[:<:]]a} bam 4 &LP {a[[:>:]]} a am 5 &LP {a[[:>:]]} a- af 6 &LP {a[[:>:]]} abm 7 bLP {\<a} a af 8 bLP {\<a} bam 9 bLP {a\>} a af 10 bLP {a\>} abm 11 LP {\ya} a af 12 LP {\ya} bam 13 LP {a\y} a af 14 LP {a\y} abm 15 LP {a\Y} ab af 16 LP {a\Y} a-f 17 LP {a\Y} af 18 LP {-\Y} -am 19 LP {-\Y} -% -f 20 LP {\Y-} a-e 21 - {[[:<:]]*} BADRPTe 22 - {[[:>:]]*} BADRPTe 23 b {\<*} BADRPTe 24 b {\>*} BADRPTe 25 - {\y*} BADRPTe 26 - {\Y*} BADRPTm 27 LP {\ma} a af 28 LP {\ma} bam 29 LP {a\M} a af 30 LP {a\M} abf 31 ILP {\Ma} af 32 ILP {a\m} adoing 12 "character classes"m 1 LP {a\db} a0b a0bf 2 LP {a\db} axbf 3 LP {a\Db} a0bm 4 LP {a\Db} axb axbm 5 LP "a\\sb" "a b" "a b"m 6 LP "a\\sb" "a\tb" "a\tb"m 7 LP "a\\sb" "a\nb" "a\nb"f 8 LP {a\sb} axbm 9 LP {a\Sb} axb axbf 10 LP "a\\Sb" "a b"m 11 LP {a\wb} axb axbf 12 LP {a\wb} a-bf 13 LP {a\Wb} axbm 14 LP {a\Wb} a-b a-bm 15 LP {\y\w+z\y} adze-guz guzm 16 LPE {a[\d]b} a1b a1bm 17 LPE "a\[\\s]b" "a b" "a b"m 18 LPE {a[\w]b} axb axbdoing 13 "escapes"e 1 & "a\\" EESCAPEm 2 - {a\<b} a<b a<bm 3 e {a\<b} a<b a<bm 4 bAS {a\wb} awb awbm 5 eAS {a\wb} awb awbm 6 PL "a\\ab" "a\007b" "a\007b"m 7 P "a\\bb" "a\bb" "a\bb"m 8 P {a\Bb} "a\\b" "a\\b"m 9 MP "a\\chb" "a\bb" "a\bb"m 10 MP "a\\cHb" "a\bb" "a\bb"m 11 LMP "a\\e" "a\033" "a\033"m 12 P "a\\fb" "a\fb" "a\fb"m 13 P "a\\nb" "a\nb" "a\nb"m 14 P "a\\rb" "a\rb" "a\rb"m 15 P "a\\tb" "a\tb" "a\tb"m 16 P "a\\u0008x" "a\bx" "a\bx"e 17 - {a\u008x} EESCAPEm 18 P "a\\u00088x" "a\b8x" "a\b8x"m 19 P "a\\U00000008x" "a\bx" "a\bx"e 20 - {a\U0000008x} EESCAPEm 21 P "a\\vb" "a\vb" "a\vb"m 22 MP "a\\x08x" "a\bx" "a\bx"e 23 - {a\xq} EESCAPEm 24 MP "a\\x0008x" "a\bx" "a\bx"e 25 - {a\z} EESCAPEm 26 MP "a\\010b" "a\bb" "a\bb"doing 14 "back references"# ughm 1 RP {a(b*)c\1} abbcbb abbcbb bbm 2 RP {a(b*)c\1} ac ac ""f 3 RP {a(b*)c\1} abbcbm 4 RP {a(b*)\1} abbcbb abb bm 5 RP {a(b|bb)\1} abbcbb abb bm 6 RP {a([bc])\1} abb abb bf 7 RP {a([bc])\1} abcm 8 RP {a([bc])\1} abcabb abb bf 9 RP {a([bc])*\1} abcf 10 RP {a([bc])\1} abBm 11 iRP {a([bc])\1} abB abB bm 12 RP {a([bc])\1+} abbb abbb bm 13 QRP "a(\[bc])\\1{3,4}" abbbb abbbb bf 14 QRP "a(\[bc])\\1{3,4}" abbbm 15 RP {a([bc])\1*} abbb abbb bm 16 RP {a([bc])\1*} ab ab bm 17 RP {a([bc])(\1*)} ab ab b ""e 18 - {a((b)\1)} ESUBREGe 19 - {a(b)c\2} ESUBREGm 20 bR {a\(b*\)c\1} abbcbb abbcbb bbdoing 15 "octal escapes vs back references"# initial zero is always octalm 1 MP "a\\010b" "a\bb" "a\bb"m 2 MP "a\\0070b" "a\0070b" "a\0070b"m 3 MP "a\\07b" "a\007b" "a\007b"m 4 MP "a(b)(b)(b)(b)(b)(b)(b)(b)(b)(b)\\07c" "abbbbbbbbbb\007c" \ "abbbbbbbbbb\007c" "b" "b" "b" "b" "b" "b" \ "b" "b" "b" "b"# a single digit is always a backrefe 5 - {a\7b} ESUBREG# otherwise it's a backref only if within range (barf!)m 6 MP "a\\10b" "a\bb" "a\bb"m 7 MP {a\101b} aAb aAbm 8 RP {a(b)(b)(b)(b)(b)(b)(b)(b)(b)(b)\10c} abbbbbbbbbbbc \ abbbbbbbbbbbc b b b b b b b \ b b b# but we're fussy about border cases -- guys who want octal should use the zeroe 9 - {a((((((((((b\10))))))))))c} ESUBREG# BREs don't have octal, EREs don't have backrefsm 10 MP "a\\12b" "a\nb" "a\nb"e 11 b {a\12b} ESUBREGm 12 eAS {a\12b} a12b a12bdoing 16 "expanded syntax"m 1 xP "a b c" "abc" "abc"m 2 xP "a b #oops\nc\td" "abcd" "abcd"m 3 x "a\\ b\\\tc" "a b\tc" "a b\tc"m 4 xP "a b\\#c" "ab#c" "ab#c"m 5 xP "a b\[c d]e" "ab e" "ab e"m 6 xP "a b\[c#d]e" "ab#e" "ab#e"m 7 xP "a b\[c#d]e" "abde" "abde"m 8 xSPB "ab{ d" "ab\{d" "ab\{d"m 9 xPQ "ab{ 1 , 2 }c" "abc" "abc"doing 17 "misc syntax"m 1 P a(?#comment)b ab abdoing 18 "unmatchable REs"f 1 I a^b abdoing 19 "case independence"m 1 &i ab Ab Abm 2 &i {a[bc]} aC aCf 3 &i {a[^bc]} aBm 4 &iM {a[b-d]} aC aCf 5 &iM {a[^b-d]} aCdoing 20 "directors and embedded options"e 1 & ***? BADPATm 2 q ***? ***? ***?m 3 &P ***=a*b a*b a*bm 4 q ***=a*b ***=a*b ***=a*bm 5 bLP {***:\w+} ab abm 6 eLP {***:\w+} ab abe 7 & ***:***=a*b BADRPTm 8 &P ***:(?b)a+b a+b a+bm 9 P (?b)a+b a+b a+be 10 e {(?b)\w+} BADRPTm 11 bAS {(?b)\w+} (?b)w+ (?b)w+m 12 iP (?c)a a af 13 iP (?c)a Am 14 APS {(?e)\W+} WW WWm 15 P (?i)a+ Aa Aaf 16 P "(?m)a.b" "a\nb"m 17 P "(?m)^b" "a\nb" "b"f 18 P "(?n)a.b" "a\nb"m 19 P "(?n)^b" "a\nb" "b"f 20 P "(?p)a.b" "a\nb"f 21 P "(?p)^b" "a\nb"m 22 P (?q)a+b a+b a+bm 23 nP "(?s)a.b" "a\nb" "a\nb"m 24 xP "(?t)a b" "a b" "a b"m 25 P "(?w)a.b" "a\nb" "a\nb"m 26 P "(?w)^b" "a\nb" "b"m 27 P "(?x)a b" "ab" "ab"e 28 - (?z)ab BADOPTm 29 P (?ici)a+ Aa Aae 30 P (?i)(?q)a+ BADRPTm 31 P (?q)(?i)a+ (?i)a+ (?i)a+m 32 P (?qe)a+ a am 33 xP "(?q)a b" "a b" "a b"m 34 P "(?qx)a b" "a b" "a b"m 35 P (?qi)ab Ab Abdoing 21 "capturing"m 1 - a(b)c abc abc bm 2 P a(?:b)c xabc abcm 3 - a((b))c xabcy abc b bm 4 P a(?:(b))c abcy abc bm 5 P a((?:b))c abc abc bm 6 P a(?:(?:b))c abc abci 7 Q "a(b){0}c" ac {0 1} {-1 -1}m 8 - a(b)c(d)e abcde abcde b dm 9 - (b)c(d)e bcde bcde b dm 10 - a(b)(d)e abde abde b dm 11 - a(b)c(d) abcd abcd b dm 12 - (ab)(cd) xabcdy abcd ab cdm 13 - a(b)?c xabcy abc bi 14 - a(b)?c xacy {1 2} {-1 -1}m 15 - a(b)?c(d)?e xabcdey abcde b di 16 - a(b)?c(d)?e xacdey {1 4} {-1 -1} {3 3}i 17 - a(b)?c(d)?e xabcey {1 4} {2 2} {-1 -1}i 18 - a(b)?c(d)?e xacey {1 3} {-1 -1} {-1 -1}m 19 - a(b)*c xabcy abc bi 20 - a(b)*c xabbbcy {1 5} {4 4}i 21 - a(b)*c xacy {1 2} {-1 -1}m 22 - a(b*)c xabbbcy abbbc bbbm 23 - a(b*)c xacy ac ""f 24 - a(b)+c xacym 25 - a(b)+c xabcy abc bi 26 - a(b)+c xabbbcy {1 5} {4 4}m 27 - a(b+)c xabbbcy abbbc bbbi 28 Q "a(b){2,3}c" xabbbcy {1 5} {4 4}i 29 Q "a(b){2,3}c" xabbcy {1 4} {3 3}f 30 Q "a(b){2,3}c" xabcym 31 LP "\\y(\\w+)\\y" "-- abc-" "abc" "abc"m 32 - a((b|c)d+)+ abacdbd acdbd bd bm 33 N (.*).* abc abc abcm 34 N (a*)* bc "" ""doing 22 "multicharacter collating elements"# again ughm 1 &+L {a[c]e} ace acef 2 &+IL {a[c]h} achm 3 &+L {a[[.ch.]]} ach achf 4 &+L {a[[.ch.]]} acem 5 &+L {a[c[.ch.]]} ac acm 6 &+L {a[c[.ch.]]} ace acm 7 &+L {a[c[.ch.]]} ache achf 8 &+L {a[^c]e} acem 9 &+L {a[^c]e} abe abem 10 &+L {a[^c]e} ache achef 11 &+L {a[^[.ch.]]} achm 12 &+L {a[^[.ch.]]} ace acm 13 &+L {a[^[.ch.]]} ac acm 14 &+L {a[^[.ch.]]} abe abf 15 &+L {a[^c[.ch.]]} achf 16 &+L {a[^c[.ch.]]} acef 17 &+L {a[^c[.ch.]]} acm 18 &+L {a[^c[.ch.]]} abe abm 19 &+L {a[^b]} ac acm 20 &+L {a[^b]} ace acm 21 &+L {a[^b]} ach achf 22 &+L {a[^b]} abedoing 23 "lookahead constraints"m 1 HP a(?=b)b* ab abf 2 HP a(?=b)b* am 3 HP a(?=b)b*(?=c)c* abc abcf 4 HP a(?=b)b*(?=c)c* abf 5 HP a(?!b)b* abm 6 HP a(?!b)b* a am 7 HP (?=b)b b bf 8 HP (?=b)b adoing 24 "non-greedy quantifiers"m 1 PT ab+? abb abm 2 PT ab+?c abbc abbcm 3 PT ab*? abb am 4 PT ab*?c abbc abbcm 5 PT ab?? ab am 6 PT ab??c abc abcm 7 PQT "ab{2,4}?" abbbb abbm 8 PQT "ab{2,4}?c" abbbbc abbbbcm 9 - 3z* 123zzzz456 3zzzzm 10 PT 3z*? 123zzzz456 3m 11 - z*4 123zzzz456 zzzz4m 12 PT z*?4 123zzzz456 zzzz4doing 25 "mixed quantifiers"# this is very incomplete as yet# should include |m 1 PNT {^(.*?)(a*)$} xyza xyza xyz am 2 PNT {^(.*?)(a*)$} xyzaa xyzaa xyz aam 3 PNT {^(.*?)(a*)$} xyz xyz xyz ""doing 26 "tricky cases"# attempts to trick the matcher into accepting a short matchm 1 - (week|wee)(night|knights) weeknights weeknights \ wee knightsm 2 RP {a(bc*).*\1} abccbccb abccbccb bm 3 - {a(b.[bc]*)+} abcbd abcbd bddoing 27 "implementation misc."# duplicate arcs are suppressedm 1 P a(?:b|b)c abc abc# make color/subcolor relationship go back and forthm 2 & {[ab][ab][ab]} aba abam 3 & {[ab][ab][ab][ab][ab][ab][ab]} abababa abababadoing 28 "boundary busters etc."# color-descriptor allocation changes at 10m 1 & abcdefghijkl abcdefghijkl abcdefghijkl# so does arc allocationm 2 P a(?:b|c|d|e|f|g|h|i|j|k|l|m)n agn agn# subexpression tracking also at 10m 3 - a(((((((((((((b)))))))))))))c abc abc b b b b b b b b b b b b b# state-set handling changes slightly at unsigned size (might be 64...)# (also stresses arc allocation)m 4 Q "ab{1,100}c" abbc abbcm 5 Q "ab{1,100}c" abbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbc \ abbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbcm 6 Q "ab{1,100}c" \ abbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbc \ abbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbc# force small cache and bust it, several waysm 7 LP {\w+abcdefgh} xyzabcdefgh xyzabcdefghm 8 %LP {\w+abcdefgh} xyzabcdefgh xyzabcdefghm 9 %LP {\w+abcdefghijklmnopqrst} xyzabcdefghijklmnopqrst \ xyzabcdefghijklmnopqrsti 10 %LP {\w+(abcdefgh)?} xyz {0 2} {-1 -1}i 11 %LP {\w+(abcdefgh)?} xyzabcdefg {0 9} {-1 -1}i 12 %LP {\w+(abcdefghijklmnopqrst)?} xyzabcdefghijklmnopqrs \ {0 21} {-1 -1}doing 29 "incomplete matches"p 1 t def abc {3 2} ""p 2 t bcd abc {1 2} ""p 3 t abc abab {0 3} ""p 4 t abc abdab {3 4} ""i 5 t abc abc {0 2} {0 2}i 6 t abc xyabc {2 4} {2 4}p 7 t abc+ xyab {2 3} ""i 8 t abc+ xyabc {2 4} {2 4}knownBug i 9 t abc+ xyabcd {2 4} {6 5}i 10 t abc+ xyabcdd {2 4} {7 6}p 11 tPT abc+? xyab {2 3} ""# the retain numbers in these two may look wrong, but they aren'ti 12 tPT abc+? xyabc {2 4} {5 4}i 13 tPT abc+? xyabcc {2 4} {6 5}i 14 tPT abc+? xyabcd {2 4} {6 5}i 15 tPT abc+? xyabcdd {2 4} {7 6}i 16 t abcd|bc xyabc {3 4} {2 4}p 17 tn .*k "xx\nyyy" {3 5} ""doing 30 "misc. oddities and old bugs"e 1 & *** BADRPTm 2 N a?b* abb abbm 3 N a?b* bb bbm 4 & a*b aab aabm 5 & ^a*b aaaab aaaabm 6 &M {[0-6][1-2][0-3][0-6][1-6][0-6]} 010010 010010# temporary REG_BOSONLY kludgem 7 s abc abcd abcf 8 s abc xabcd# back to normal stuffm 9 HLP {(?n)^(?![t#])\S+} "tk\n\n#\n#\nit0" it0# flush any leftover complaintsdoing 0 "flush"# Tests resulting from bugs reported by userstest reg-31.1 {[[:xdigit:]] behaves correctly when followed by [[:space:]]} { set str {2:::DebugWin32} set re {([[:xdigit:]])([[:space:]]*)} list [regexp $re $str match xdigit spaces] $match $xdigit $spaces # Code used to produce {1 2:::DebugWin32 2 :::DebugWin32} !!!} {1 2 2 {}}# cleanup::tcltest::cleanupTestsreturn
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?