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 + -
显示快捷键?