Óû§Ãû£ºnijmzboq
packa×ÓÇҾƲ¡¶ÔÐе°¼°getestreg;
importj**a.util.regex.Matcher;
importj**a.util.regex.Pattern;
/**
*<p>Title:ÕýÔò±í´ïʽµÄÑо¿</p>
*<p>Description:
*×î½üÔÚ¹¤×÷Öг£³£Óõ½Ò»Ð©ÕýÔò±í´ïʽµÄʹÓÃÎÊÌ⣬µ½ÍøÀ´×ÔÉÏÈ¥ÕÒ½éÉÜ´ó¶àÊÇÒ»ÁÛ°ëצ¡£ÇóÈ˲»Èç
*ÇóÒÑ¡£Ò»ºÝÐÄ£¬×Ô¼º¿´!ÕâÁ½ÌìÀûÓÃÎÒÃÇÏîÄ¿Á½ÆÚÖ®¼äµÄÒ»µã¿ÕÏжÔJ2**ËùÖ§³ÖµÄÕýÔò±í´ïʽÀ´
*Á˸ö³¹µ×Ñо¿!´ú¼ÛÊÇ¡¡¾ÍÊÇÀË·ÏÁ˲¿ÃŽüÊ®¶þÂÌʯÃü¼ÛÒÒ³¯±¶ÍÁÈ»×ÜÕŰ×Ö½¡£Ïл°ÉÙ˵£¬Êé¹éÕý´«¡£
*ÔÀí£º
*ÕýÔò±í´ïʽµÄÔÀíÊÇÓÐÏÞ״̬×Ô¶¯»ú£¬×Ô¶¯»ú**ÓÐÓÐÏÞ¸ö״̬£¬ÓÐÒ»¸ö³õʼ״̬£¬ÓÐÒ»¸ö
*½áÊø×´Ì¬¡£×Ô¶¯»ú¸ù¾ÝÊäÈëºÍ×ÔÉí**µÄµ±Ç°×´Ì¬À´¾ö¶¨ÏÂÒ»²½ÓÚʲô¡£ºÇºÇ£¬ÕâÊǺܾÃÒÔǰѧ
*µÄÁ¼´¹Ð¡ÁËÖúºÃ¶«¶«ÁËÒ²¼Ç²»ÇåÁË£¬´ó¼ÒÖ»×÷²ÎÕÕ°É¡£
*J**aÖеÄÕýÔò±í´ïʽ£º
*´ÓJ2**1.ÎÊ´ð4ÆðJ**aÔö¼ÓÁ˶ÔÕýÔò±í´ïʽµÄÖ§³Ö¾ÍÊÇj**a.util.regex°ü£¬Õâ¸ö°üÖÐÖ÷ÒªÓÐ
*3¸öÀà:Pattern,´ú±íģʽ£¬¾ÍÊÇÕýÔò±í´ïʽ×ÔÉí£¬Matcher£¬ÊÇÒ»¸öÓÐÏÞ״̬×Ô¶¯»ú£¬Æäʵ´ó¶à
*ÊýµÄ»î»¹ÊÇÈÃPatternÀàÓÚÁË£¬MatcherÍùÍùÖ»ÊǼòµ¥µÄµ÷ÓÃPattern£¬²»ÖªµÀÕâÊÇʲôģʽ¡£Õâ
*Á½¸öÀàдµÄ¶¼ºÜ¾µä£¬»¹Óв»ÉÙËã·¨ÔÚÄÚÖµµÃÓй¦Á¦µÄÈËÌïʾÊ×ζÁí±ãÉÙÉÕ¿ó´ð×ÐϸÑо¿Ò»Ï¡£ÁíÒ»¸öÊÇÒ»¸öÒì³£À൱Ëù
*ÓÃÕýÔò±í´ïʽ²»¾ùͼ´óÖØÔÓÅäÕýȷʱÅ׳ö£¬ÊÇÔËÐÐÊì³£¡£
*¼¸¸öÄѵ㣺
*1.lineterminator
*lineterminatorÖÐÎÄÒâÖÕ½á·û£¬ÊÇÖ¸Ò»¸ö»òÁ½¸ö×Ö·û×é³ÉµÄ×Ö·ûÐòÁС£j**aÖеÄ
*Ëù¶«·¿Á¬µÂ×öÂÛ¾§¹»ÓÐlinetermi³¯Ä©ÕëÀïÒÑÉËÒønator:
*Anewline(linefeed)character('\n'),
*-----------»»Ðзû(0A)
*Acarriage-returnchaÒ¶ÔìÊÕ±øÑª¼°racterfolloÍÆËÙÎÝwedimmediatelybyanewlinecharacteΧµÍ¹ýÕëÆäÓ°r("\r\n"),
*-----------»Ø³µ+»»ÐÐ(0D0A)
*AstandaÓñÖÆ¾§È«¶½¾°¸ùÆ·Ö´Á¸Äîlonecarriage-returnc½ïλŮ¾§Çâ¿×ÍûÏçËÍʤharacter('\r'),
*-----------»Ø³µ(0D)
*Anext-linecharacter('\u0085'),
*------------ÏÂÒ»Ðзû£¿(£¿±íʾÎÒÒ²²»ÖªµÀÊÇʲô£¬Çë´ó¼ÒÃ÷°×µÄ¸øÎÒ·¢mail
*Al³Ð½¥´¥ÄÍΧϯ²ÎËù²¡ine-separaÐíÍêËÄtorcharacter('\u2028'),or
*------------Ðзָô·û£¿
*Apδ֪ËáÑØ×ùÈë¹Å»îÈÔ¼´aragraph-separatorcharacter('\u2029).
*------------¶ÎÂä·Ö¸ô·û£¿
*IfUNIX_LINESmodeisactivated,thentheonlylineterminatorsrecognizedarenewlinecharacters.
*Èç¹ûʹÓÃunixģʽÔòÖ»ÓÐ\n±»ÈÏΪÊÇlineterminÊäÑǾ§¼¼À´Å·dzå¹Ùº£¶¥ator£¬Ò²¾ÍÊÇÔÚʹÓÃpatternʱÈçÏ£º
*Patternp=Pattern.compile("ÕýÔò±í´ïʽ",PattÉý×öÑÏÊØË«Áíǰ¡ern.UNIX_LINE);
*»òPatternp=Pattern.compile("(?d)ÕýÔò±í´ïʽ")
*"."Æ¥Åä³ýlineterminatorÒÔÍâµÄËùÓÐ×Ö·û(δָ¶¨DOTALLʱ)
*ÔÚÖ¸¶¨DOTAllģʽʱ"."Æ¥ÅäËùÓÐ×Ö·û
*2.Quantifiers,Greedy,ReluctantandPossessive.
*Õ⼸¸ö´Ê²»Ì«ºÃÒ룬ÔÎÄÊÇGreedyQuantifiers,ReluctantQuantifiersandPossessive
*QuantifiersƾÎÒÕâµãÓ¢ÓïÎÒÖ»ºÃÒë×÷̰À·µÄÁ¿×Ó£¬²»ÇéÔ¸µÄÁ¿×ÓºÍÕ¼ÓÐÓûÇ¿µÄÁ¿×Ó£¿ÕâҲ̫¸ãЦÁË£¬
*ºÃÔÚÎÒÀí½âÁËËûÃǵÄÒâ˼¡£ÕâµãµÈÏÂÎÒϸ˵¡£
*3.¶ÔÓÚ[a-zA-Z],[a-d[h-i]],[^a-f],[b-f&&[a-z]],[b-f&&[^cd]]µÈÐÎʽµÄÀí½â
*¶ÔÓÚÉÏÊö£¬ÔÎÄÓÃrange,union,negation,intersection,subtractionµÈÀ´ÃèÊö
*range±íÊÇ·¶Î§£¬unionÊDz¢¼¯£¬negationÊÇÈ¡·´£¬intersectionÊǽ»¼¯£¬subtraction
*ÊÇ¡¡ÊǼõ·¨£¿£¿·´ÕýÊǼõÈ¥Ò»²¿·ÖµÄÒâ˼
*rangea-z´Óaµ½zµÄСд×Öĸ
*negation[^a-f]³ýÁËa-fÖ®ÍâËùÓеģ¬**ÊÇËùÓÐ×Ö·û
*union[a-d[h-i]]a-d²¢h-i
*subtraction[b-f&&[^cd]]¾ÍÊÇb-fÖгýÁËcdÒÔÍâµÄ¶¼ÊÇ
*intersection[b-f&&[a-z]]¾ÍÊÇb-fÓëa-zÖеĹ«**²¿·Ö
*ÎÒ×ܽáÁËһϣ¬Æäʵ¾ÍÊÇ·½À¨ºÅ±íʾһ¸ö¼¯ºÏ£¬¼¯ºÏÖеÄÔªËØÓÃÁоٷ¨±íʾÈç[abcd]£¬µ«Ì«¶à
*ÁËÔõôΪ£¿×ܲ»ÄܰѴÓaµ½zµÄÈ«Áоٰɣ¿ÄǾÍÓÃa-z±íʾÇÒÊ¡ÂÔÁË·½À¨ºÅ£¬½»¼¯ÓÃ&&±íʾ£¬²¢¼¯
*Ê¡ÂÔ£¬²î¼¯(¶ÔsubtractionÒë³É²î¼¯»**î²»¶à)Óý»¼¯ºÍÈ¡·´À´±íʾ¡£ËùÒÔ£¬ÒÔÉϵĿɱíʾΪ£º
*[[a-z][A-Z]],[[a-d][h-i]],[^a-f],[[b-f]&&[a-z]],[[b-f]&&[^cd]]
*ÕâÑùÊDz»ÊǺÍÎÒÃǵÄϰ¹ßÏà·ûÁË.
*4.¸÷¸ö±êÖ¾µÄÒâÒå
*ÔÚÉú³Épatternʱ¿ÉÒÔͬʱʹÓü¸¸ö±êÖ¾À´Ö¸¶¨½øÐÐÆ¥ÅäʱµÄ·½°¸¡£
*Ó÷¨ÐÎÈ磺Patternp=Pattern.compile(".*a?",Pattern.UNIX_LINES);
*µ±Í¬Ê±Ö¸¶¨¶à¸ö±ê־ʱ¿ÉÒÔʹÓÃ"|"²Ù×÷·ûÁ¬½ÓÈ磺
*Patternp=Pattern.compile(".*a?,Pattern.UNIX_LINES|Pattern.DOTALL);
*Ò²¿ÉÒÔÔÚ±í´ïʽÖÐÖ¸¶¨È磺
*Patternp=Pattern.compile("(?d).*a?");
*Patternp=Pattern.compile("(?d)(?s).*a?");
*ÒÔÉÏÁ½¸ö¶¨ÒåºÍÇ°ÃæÁ½¸ö¶ÔÓ¦µÈ¼Û
*ËùÓеıêÖ¾ÈçÏ£º
*ConstantEquivalentEmbeddedFlagExpression
***.CANON_EQNoneEnablescanonicalequivalence
***.CA**_IN**NSITIVE(?i)Enablescase-insensitivematching
Pattern.COMMENTS(?x)Permitswhitespaceandcommentsinpattern.
Pattern.MULTILINE(?m)Enablesmultilinemode.
Pattern.DOATALL(?s)Enablesdotallmode
Pattern.UNICODE_CA**(?u)EnablesUnicode-awarecasefolding.
Pattern.UNIX_LINES(?d)EnablesUnixlinesmode
CANON_EQÖ¸¶¨Ê¹Óù淶µÈ¼Ûģʽ£¿Õâ¸öÎÒÀí½âµÄÒ²ÓÐÏÞ£¬ÊDz»ÊÇ˵ֻҪָ¶¨ÁËÕâ¸öģʽÔò
asciiÂëµÄ'a'¾Í¿ÉÒÔºÍunicodeµÄ'a'»¹ÓÐXXXÂëµÄ'a'ÏàµÈ£¿Çë½Ì¸÷λ¡£(mailtome)
CA**_IN**NSITIVEÖ¸¶¨Ê¹ÓôóСд²»Ãô¸ÐµÄÆ¥Åäģʽ£¬Õâ¸öºÃÀí½â£¬µ«Òª×¢ÒâÕâ¸ö±êÖ¾Ö»ÊÇ
¶ÔasciiÂëÓÐЧ£¬ÒªÊ¹unicodeÔڱȽÏʲºöÂÔ´óСдҪͬʱָ¶¨UNICODE_CA**,¾ÍÊÇÒªÖ¸¶¨
CA**_IN**NSITIVE|UNICODE_CA**»òʹÓÃ(?i)(?u)
COMMENTSÖ¸¶¨Ê¹ÓÃ×¢ÊͺͺöÂÔ¿Õ°×£¬Ò²¾ÍÊÇ".*a"==".*a#thisiscomments"ÎÒÏëÕâ¸ö
*ÔÚÕýÔò±í´ïʽºÜ´ó£¬¶øÇÒÊÇÔÚÎļþÖÐÊäÈëʱ±È½ÏÓÐÓã¬Æ½Ê±ÎÒ¿´Ò²Óò»ÉÏ¡£
*
*MULTILINEInmultilinemodetheexpressions^and$matchjustafter
*orjustbefore,respectively,alineterminatorortheendofthe
*inputsequence.Bydefaulttheseexpressionsonlymatchatthebeginning
*andtheendoftheentireinputsequence
*Ö¸¶¨Ê¹ÓöàÐÐÆ¥Åäģʽ£¬ÔÚĬÈÏģʽÏ£¬^ºÍ$·Ö±ðֻƥÅäÒ»¸öÊäÈëµÄ¿ªÊ¼ºÍ½áÊø¡£
*ÔÚÕâÖÖģʽÏ£¬^ºÍ$³ýÁËÆ¥ÅäÕû¸öÊäÈëµÄ¿ªÊ¼ºÍ½áÊøÍ⻹ƥÅäÒ»¸ölineterminatorµÄºó±ßºÍ
*ǰ±ß(²»ÊÇǰ±ßºÍºó±¬¾ÍÊÇ˵^Æ¥ÅälineterminatorµÄºó±ß$Æ¥ÅälineterminatorµÄǰ±ß¡£
*
*DOATALLÈçÖ¸¶¨ÁËÕâ¸öģʽÔò"."¿ÉÆ¥ÅäÈκÎ×Ö·û°üÀ¨lineterminator
*
*UNIX_LINESÖ¸¶¨Õâ¸öģʽʱֻÓÐ\n±»ÈÏΪÊÇlineterminator¶ø\rºÍ\r\n¶¼²»ÊÇ
*
*ÆäËûµÄÎÒһʱÏë²»ÆðÀ´ÁË£¬ÔÚ¾ßÌå½éÉÜʱÔÙ˵°É¡£
*</p>
*/
publicclassTestReg2
{
publicstaticvoidmain(String[]args)
{
Stringstr1="";
Objectstr="";
//×¢Ò⣺\r,\n,\bµÈתÒå×Ö·ûÔÚj**a×Ö·û´®³£Á¿ÖÐҪд³É\\r,\\n,\\bµÈ£¬·ñÔò±àÒë¶¼¹ý²»È¥
//\sÆ¥Åä\r,\n,\rºÍ¿Õ¸ñ
System.out.println("\\sÆ¥Åä\\r,\\n,\\rºÍ¿Õ¸ñ"+"\t\n\r".matches("\\s{4}"));
//\SºÍ\s»¥Äæ
System.out.println("\\SºÍ\\s»¥Äæ"+"/".matches("\\S"));
//.²»Æ¥Åä\rºÍ\n
System.out.println(".²»Æ¥Åä\\rºÍ\\n"+"\r".matches("."));
System.out.println("\n".matches("."));
//\wÆ¥Åä×Öĸ£¬Êý×ÖºÍÏ»®Ïß
System.out.println("\\wÆ¥Åä×Öĸ£¬Êý×ÖºÍÏ»®Ïß"+"a8_".matches("\\w\\w\\w"));
//\WºÍ\w»¥Äæ
System.out.println("\\WºÍ\\w»¥Äæ"+"&_".matches("\\W\\w"));
//\dÆ¥ÅäÊý×Ö
System.out.println("\\dÆ¥ÅäÊý×Ö"+"8".matches("\\d"));
//\DÓë\d»¥Äæ
System.out.println("\\DÓë\\d»¥Äæ"+"%".matches("\\D"));
//Á½Õß¶¼Æ¥Å䵫ÒâÎIJ»Í¬
System.out.println("======================");
System.out.println("±íʾ\\000aÆ¥Åä\\000a"+"\n".matches("\n"));
System.out.println("±íʾ\\nÆ¥Åä»»ÐÐ"+"\n".matches("\\n"));
System.out.println("======================");
//Á½Õß¶¼Æ¥Å䵫ÒâÎIJ»Í¬
System.out.println("\r".matches("\r"));
System.out.println("\r".matches("\\r"));
System.out.println("======================");
//^Æ¥Å俪ͷ
System.out.println("^Æ¥Å俪ͷ"+"hell".matches("^hell"));
System.out.println("abc\nhell".matches("^hell"));
//$Æ¥Åä½áÊø
System.out.println("$Æ¥Åä½áÊø"+"mycar\nabc".matches(".*ar$"));
System.out.println("mycar".matches(".*ar$"));
//\bÆ¥Åä½ç
System.out.println("\\bÆ¥Åä½ç"+"bomb".matches("\\bbom."));
System.out.println("bomb".matches(".*mb\\b"));
//\BÓë\b»¥Äæ
System.out.println("\\BÓë\\b»¥Äæ"+"abc".matches("\\Babc"));
//[a-z]Æ¥Åäaµ½zµÄСд×Öĸ
System.out.println("[a-z]Æ¥Åäaµ½zµÄСд×Öĸ"+"s".matches("[a-z]"));
System.out.println("S".matches("[A-Z]"));
System.out.println("9".matches("[0-9]"));
//È¡·´
System.out.println("È¡·´"+"s".matches("[^a-z]"));
System.out.println("S".matches("[^A-Z]"));
System.out.println("9".matches("[^0-9]"));
//À¨ºÅµÄ×÷ÓÃ
System.out.println("À¨ºÅµÄ×÷ÓÃ"+"aB9".matches("[a-z][A-Z][0-9]"));
System.out.println("aB9bC6".matches("([a-z][A-Z][0-9])+"));
//»òÔËËã
System.out.println("»òÔËËã"+"two".matches("two|to|2"));
System.out.println("to".matches("two|to|2"));
System.out.println("2".matches("two|to|2"));
//[a-zA-z]==[a-z]|[A-Z]
System.out.println("[a-zA-z]==[a-z]|[A-Z]"+"a".matches("[a-zA-Z]"));
System.out.println("A".matches("[a-zA-Z]"));
System.out.println("a".matches("[a-z]|[A-Z]"));
System.out.println("A".matches("[a-z]|[A-Z]"));
//Ìå»áÒ»ÏÂÒÔÏÂËĸö
System.out.println("Ìå»áÒ»ÏÂÒÔÏÂËĸö\n==========================");
System.out.println(")".matches("[a-zA-Z)]"));
System.out.println(")".matches("[a-zA-Z)_-]"));
System.out.println("_".matches("[a-zA-Z)_-]"));
System.out.println("-".matches("[a-zA-Z)_-]"));
System.out.println("==========================");
System.out.println("b".matches("[abc]"));
//[a-d[f-h]]==[a-df-h]
System.out.println("[a-d[f-h]]==[a-df-h]"+"h".matches("[a-d[f-h]]"));
System.out.println("a".matches("[a-z&&[def]]"));
//È¡½»¼¯
System.out.println("È¡½»¼¯"+"a".matches("[a-z&&[def]]"));
System.out.println("b".matches("[[a-z]&&[e]]"));
//È¡²¢
System.out.println("È¡²¢"+"9".matches("[[a-c][0-9]]"));
//[a-z&&[^bc]]==[ad-z]
System.out.println("[a-z&&[^bc]]==[ad-z]"+"b".matches("[a-z&&[^bc]]"));
System.out.println("d".matches("[a-z&&[^bc]]"));
//[a-z&&[^m-p]]==[a-lq-z]
System.out.println("[a-z&&[^m-p]]==[a-lq-z]"+"d".matches("[a-z&&[^m-p]]"));
System.out.println("a".matches("\\p{Lower}"));
///×¢ÒâÒÔÏÂÌå»á\bµÄÓ÷¨(×¢Ò⣬ÔÚ×Ö·û´®³£Á¿ÖÐʮĿֱ½Óд\b±íÍ˸ñ£¬ËùÒÔҪд\\b
System.out.println("*********************************");
System.out.println("aawordaa".matches(".*\\bword\\b.*"));
System.out.println("aworda".matches(".*\\bword\\b.*"));
System.out.println("aawordaa".matches(".*\\Bword\\B.*"));
System.out.println("aworda".matches(".*\\Bword\\B.*"));
System.out.println("aworda".matches(".*word.*"));
System.out.println("aawordaa".matches(".*word.*"));
//Ìå»áÒ»ÏÂ×éµÄÓ÷¨
//×éµÄ˳Ðò£¬Ö»Êý"("µÚÒ»¸öΪµÚÒ»×éµÚ¶þ¸öÊǵڶþ×é¡¡
//µÚ0×é±íʾÕû¸ö±í´ïʽ
System.out.println("**************testgroup**************");
Patternp=Pattern.compile("(([abc]+)([123]+))([-_%]+)");
Matcherm=p.matcher("aac212-%%");
System.out.println(m.matches());
m=p.matcher("cccc2223%_%_-");
System.out.println(m.matches());
System.out.println("======testgroup======");
System.out.println(***.group());
System.out.println(***.group(0));
System.out.println(***.group(1));
System.out.println(***.group(2));
System.out.println(***.group(3));
System.out.println(***.group(4));
System.out.println(***.groupCount());
System.out.println("========testend()=========");
System.out.println(m.end());
System.out.println(m.end(2));
System.out.println("==========teststart()==========");
System.out.println(m.start());
System.out.println(m.start(2));
//testbackslash²âÊÔ·´ÏòÒýÓã¿
Patternpp1=Pattern.compile("(\\d)\\1");//Õâ¸ö±í´ïʽ±íʾ±ØÐëÓÐÁ½ÏàͬµÄÊý×Ö³öÏÖ
//\1±íʾÒýÓõÚÒ»¸ö×é\n±íʾÒýÓõÚn¸ö×é(±ØÐëÓÃ\\1¶ø²»ÄÜÓÃ\1Òò\1ÔÚ×Ö·û´®ÖÐÁíÓÐÒâÒå(ÎÒÒ²ÖªµÀÊÇʲô)
Matchermm1=pp1.matcher("3345");//33Æ¥Å䵫45²»Æ¥Åä
System.out.println("testbackslash²âÊÔ·´ÏòÒýÓÃ");
System.out.println(mm1.find());
System.out.println(mm1.find());
//Ìå»áÒÔϲ»Í¬
System.out.println("==============testfind()=========");
System.out.println(m.find());
System.out.println(m.find(2));
System.out.println("ÕâÊÇ´ÓµÚÈý¸ö×Ö·û(index=2)¿ªÊ¼ÕÒµÄgroup½á¹û");
System.out.println(***.group());
System.out.println(***.group(0));
System.out.println(***.group(1));
System.out.println(***.group(2));
System.out.println(***.group(3));
m.reset();
System.out.println(m.find());
//²âÊÔÒ»¸öģʽ¿É¶à´ÎÆ¥ÅäÒ»¸ö´®
System.out.println("²âÊÔÒ»¸öģʽ¿É¶à´ÎÆ¥ÅäÒ»¸ö´®");
Patternp1=Pattern.compile("a{2}");
Matcherm1=p1.matcher("aaaaaa");
//Õâ˵Ã÷MatcherµÄmatchs()·½·¨ÊǶÔʸö×Ö·û´®µÄÆ¥Å䣬
System.out.println(m1.matches());
System.out.println(m1.find());
System.out.println(m1.find());
System.out.println(m1.find());
System.out.println(m1.find());
//ÔÙ²âÊÔmatchs()
System.out.println("ÔÙ²âÊÔmatchs()");
Patternp2=Pattern.compile("(a{2})*");
Matcherm2=p2.matcher("aaaa");
System.out.println(m2.matches());
System.out.println(m2.matches());
System.out.println(m2.matches());
//ËùÒÔfindÊÇÔÚÒ»¸ö´®ÖÐÕÒÓÐûÓжÔÓ¦µÄģʽ£¬¶ømatchsÊÇÍêȫƥÅä
//testlookupat()
System.out.println("testlookupat()");
Patternp3=Pattern.compile("a{2}");
Matcherm3=p3.matcher("aaaa");
System.out.println(p3.flags());
System.out.println(m3.lookingAt());
System.out.println(m3.lookingAt());
System.out.println(m3.lookingAt());
//×ܽáÒÔÉÏmatchs()ÊÇÕû¸öÆ¥ÅäÇÒ×ÜÊÇ´ÓÍ·¿ªÊ¼£¬findÊDz¿·ÖÆ¥ÅäÇÒ´ÓÉÏÒ»´ÎÆ¥Åä½áÊøÊ±¿ªÊ¼ÕÒ
//lookingAtÒ²ÊÇ´ÓÍ·¿ªÊ¼£¬µ«ÊDz¿·ÖÆ¥Åä
System.out.println("======test¿Õ°×ÐÐ========");
System.out.println("\n".matches("^[\\t]*$\\n"));
//ÑÝʾappendXXXµÄÓ÷¨
System.out.println("=================testappend====================");
Patternp4=Pattern.compile("cat");
Matcherm4=p4.matcher("onecattwocatsintheyard");
StringBuffersb=newStringBuffer();
booleanresult=m4.find();
inti=0;
System.out.println("onecattwocatsintheyard");
while(result)
{m4.appendReplacement(sb,"dog");
System.out.println(***.group());
System.out.println("µÚ"+i+++"´Î:"+sb.toString());
result=m4.find();
}
System.out.println(sb.toString());
m4.appendTail(sb);
System.out.println(sb.toString());
//testUNIX_LINES
System.out.println("testUNIX_LINES");
Patternp5=Pattern.compile(".",Pattern.UNIX_LINES);
Matcherm5=p5.matcher("\n\r");
System.out.println(m5.find());
System.out.println(m5.find());
//testUNIX_LINES
System.out.println("testUNIX_LINES");
Patternp6=Pattern.compile("(?d).");
Matcherm6=p6.matcher("\n\r");
System.out.println(m6.find());
System.out.println(m6.find());
//testUNIX_LINES
System.out.println("testUNIX_LINES");
Patternp7=Pattern.compile(".");
Matcherm7=p7.matcher("\n\r");
System.out.println(m7.find());
System.out.println(m7.find());
//testCA**_IN**NSITIVE
System.out.println("testCA**_IN**NSITIVE");
Patternp8=Pattern.compile("a",***.CA**_IN**NSITIVE);
Matcherm8=p8.matcher("aA");
System.out.println(m8.find());
System.out.println(m8.find());
System.out.println("testCA**_IN**NSITIVE");
Patternp9=Pattern.compile("(?i)a");
Matcherm9=p9.matcher("aA");
System.out.println(m9.find());
System.out.println(m9.find());
System.out.println("testCA**_IN**NSITIVE");
Patternp10=Pattern.compile("a");
Matcherm10=p10.matcher("aA");
System.out.println(m10.find());
System.out.println(m10.find());
//testCOMMENTS
System.out.println("testCOMMENTS");
Patternp11=Pattern.compile("aa#ccc",Pattern.COMMENTS);
Matcherm11=p11.matcher("aaaa#ccc");
System.out.println(m11.find());
System.out.println(m11.find());
System.out.println("testCOMMENTS");
Patternp12=Pattern.compile("(?x)aa#ccc");
Matcherm12=p12.matcher("aaaa#ccc");
System.out.println(m12.find());
System.out.println(m12.find());
//testMULTILINEÕâ¸ö´ó¼Ò¶àÊÔÊÔ²ÎÕÕÎÒÉÏÃæ¶Ô¶àÐÐģʽµÄÀí½â
System.out.println("testMULTILINE");
Patternp13=Pattern.compile("^.?",Pattern.MULTILINE|Pattern.DOTALL);
Matcherm13=p13.matcher("helloohelloo,loveroo");
System.out.println(m13.find());
System.out.println("start:"+m13.start()+"end:"+m13.end());
System.out.println(m13.find());
//System.out.println("start:"+m13.start()+"end:"+m13.end());
System.out.println("testMULTILINE");
Patternp14=Pattern.compile("(?m)^hell.*oo$",Pattern.DOTALL);
Matcherm14=p14.matcher("hello,Worldoo\nhello,loveroo");
System.out.println(m14.find());
System.out.println("start:"+m14.start()+"end:"+m14.end());
System.out.println(m14.find());
//System.out.println("start:"+m14.start()+"end:"+m14.end());
System.out.println("testMULTILINE");
Patternp15=Pattern.compile("^hell(.|[^.])*oo$");
Matcherm15=p15.matcher("hello,Worldoo\nhello,loveroo");
System.out.println(m15.find());
System.out.println("start:"+m15.start()+"end:"+m15.end());
System.out.println(m15.find());
//System.out.println("start:"+m15.start()+"end:"+m15.end());
//testDOTALL
System.out.println("testDOTALL");
Patternp16=Pattern.compile(".",Pattern.DOTALL);
Matcherm16=p16.matcher("\n\r");
System.out.println(m16.find());
System.out.println(m16.find());
System.out.println("testDOTALL");
Patternp17=Pattern.compile(".");
Matcherm17=p17.matcher("\n\r");
System.out.println(m17.find());
System.out.println(m17.find());
System.out.println("testDOTALL");
Patternp18=Pattern.compile("(?s).");
Matcherm18=p18.matcher("\n\r");
System.out.println(m18.find());
System.out.println(m18.find());
//testCANON_EQÕâ¸öÊÇjdkµÄÀý×Óµ«ÎÒʵÔÚ²»Ã÷°×ÊÇʲôÒâ˼£¬Ïò´ó¼ÒÇë½Ì
System.out.println("testCANON_EQ");
Patternp19=Pattern.compile("a\u030A",***.CANON_EQ);
System.out.println(Character.getType('\u030A'));
System.out.println("is"+Character.isISOControl('\u030A'));
System.out.println("is"+Character.isUnicodeIdentifierPart('\u030A'));
System.out.println(Character.getType('\u00E5'));
System.out.println("is"+Character.isISOControl('\u00E5'));
Matcherm19=p19.matcher("\u00E5");
System.out.println(m19.matches());
System.out.println(Character.getType('\u0085'));
System.out.println("is"+Character.isISOControl('\u0085'));
//×¢ÒâÏÂÃæÈý¸öÀý×ÓÌå»áGreedy,ReluctantandPossessiveQuantifiersµÄ²»Í¬
Patternppp=Pattern.compile(".*foo");
Matchermmm=ppp.matcher("xfooxxxxxxfoo");
/**
*Greedyquantifiers
X?X,onceornotatall
X*X,zeroormoretimes
X+X,oneormoretimes
X{n}X,exactlyntimes
X(n,}X,atleastntimes
X{n,m}X,atleastnbutnotmorethanmtimes
GreedyquantifiersÊÇ×î³£ÓõÄÒ»ÖÖ£¬ÈçÉÏ£¬ËüµÄÆ¥Å䷽ʽÊÇÏÈÆ¥Å価¿ÉÄܶàµÄ×Ö·û£¬µ±
ÕâÑùÔì³ÉÕû¸ö±í´ïʽÕûÌå²»ÄÜÆ¥Åäʱ¾ÍÍËÒ»¸ö×Ö·ûÔÙÊÔ±ÈÈ磺
.*fooÓëxfooxxxxxxfooµÄÆ¥Åä¹ý³Ì£¬.*ÏÈÓëÕû¸öÊäÈëÆ¥Å䣬·¢ÏÖÕâÑù²»ÐУ¬Õû¸ö´®²»ÄÜÆ¥Åä
*ÓÚÊÇÍË×îºóÒ»¸ö×Ö·û"o"ÔÙÊÔ£¬»**»ÐУ¬ÔÙÍËÖ±µ½°Ñfoo¶¼Í˳ö²Å·¢ÏÖÆ¥ÅäÓÚÊǽáÊø¡£ÒòΪÕâ¸ö¹ý³Ì
*×ÜÊÇÏÈ´Ó×î´óÆ¥Å俪ʼµ½ÕÒµ½Ò»¸öÆ¥Å䣬ËùÒÔ.*Óë֮ƥÅäµÄ×ÜÊÇÒ»¸ö×î´óµÄ£¬Õâ¸öÌØµãºÍ×ʱ¾¼ÒÏàËÆ
*¹ÊÃṵ̂À·µÄ
*/
booleanisEnd=false;
intk=0;
System.out.println("==========");
System.out.println("xfooxxxxxxfoo");
while(isEnd==false)
try{
System.out.println("the:"+k++);
System.out.println(mmm.find());
System.out.println(mmm.end());
}catch(Exceptione){
isEnd=true;
}
isEnd=false;
Patternppp1=Pattern.compile(".*?foo");
Matchermmm1=ppp1.matcher("xfooxxxxxxfoo");
/**
*Reluctantquantifiers
X??X,onceornotatall
X*?X,zeroormoretimes
X+?X,oneormoretimes
X{n}?X,exactlyntimes
X(n,}?X,atleastntimes
X{n,m}?X,atleastnbutnotmorethanmtimes
ReluctantquantifiersµÄÆ¥Å䷽ʽÕýºÃÏà·´£¬Ëü×ÜÊÇÏÈ´Ó×îСƥÅ俪ʼ£¬Èç¹ûÕâʱµ¼ÖÂ
Õû¸ö´®Æ¥Åäʧ°ÜÔòÔÙ³Ô½øÒ»¸ö×Ö·ûÔÙÊÔ£¬È磺
.*?fooÓëxfooxxxxxxfooµÄÆ¥Åä¹ý³Ì£¬Ê×ÏÈ£¬.*Óë¿Õ´®Æ¥Å䣬ÕâʱÕû¸ö´®Æ¥Åäʧ°Ü£¬ÓÚÊÇ
*ÔÙ³ÔÒ»¸öx,Õâʱ·¢ÏÖÕû¸ö´®Æ¥Åä³É¹¦£¬µ±ÔÙµ÷ÓÃfindʱ´ÓÉÏ´ÎÆ¥Åä½áÊøÊ±¿ªÊ¼ÕÒ£¬ÏȳÔÒ»¸ö
*¿Õ´®£¬²»ÐУ¬ÔÙ³ÔÒ»¸öx£¬²»ÐУ¬¡¡Ö±µ½°ÑÖмäËùÓÐx¶¼³Ôµô²Å·¢ÏÖÆ¥Åä³É¹¦¡£ÕâÖÖ·½Ê½×Ü
*ÊÇ´Ó×îСƥÅ俪ʼËùÒÔËüÄÜÕÒµ½×î¶à´ÎÊýµÄÆ¥Å䣬µ«µÚһƥÅä¶¼ÊÇ×îСµÄ¡£ËüµÄÐÐΪÓеãÏó**
*¹¤ÈË£¬×ÜÊǾ¡¿ÉÄÜÉÙµÄÓڻ¹ÊÃûÃãÇ¿µÄ¡£
*/
k=0;
System.out.println("?????????????????????");
System.out.println("xfooxxxxxxfoo");
while(isEnd==false)
try{
System.out.println("the:"+k++);
System.out.println(mmm1.find());
System.out.println(mmm1.end());
}catch(Exceptione){
isEnd=true;
}
isEnd=false;
Patternpp2=Pattern.compile(".*+foo");
Matchermm2=pp2.matcher("xfooxxxxxxfoo");
/**
*
Possessivequantifiers
X?+X,onceornotatall
X*+X,zeroormoretimes
X++X,oneormoretimes
X{n}+X,exactlyntimes
X(n,}+X,atleastntimes
X{n,m}+X,atleastnbutnotmorethanmtimes
PossessivequantifiersÕâÖÖÆ¥Å䷽ʽÓëGreedy·½Ê½ÏàËÆ£¬Ëù²»Í¬µÄÊÇËü²»¹»´ÏÃ÷£¬µ±
ËüÒ»¿Ú³ÔµôËùÓпÉÒÔ³ÔµÄ×Ö·ûʱ·¢ÏÖ²»Æ¥ÅäÔòÈÏΪÕû¸ö´®¶¼²»Æ¥Å䣬Ëü²»»áÊÔ×Åͳö¼¸¸ö¡£ËüµÄÐÐ
ΪºÍ´óµØÖ÷ÏàËÆ£¬Ì°À·µ«ÊÇÓÞ´À£¬ËùÒÔÃûԻǿռµÄ¡£
*/
intii=0;
System.out.println("+++++++++++++++++++++++++++");
System.out.println("xfooxxxxxxfoo");
while(isEnd==false)
try{
System.out.println("the:"+ii++);
System.out.println(mm2.find());
System.out.println(mm2.end());
}catch(Exceptione){
isEnd=true;
}
}
}