package Ġch oo ong g . box . ext Ċ Ċ import Ġjava . util .* Ċ import Ġjava . util . regex . Pattern Ċ import Ġkotlin . collections . ArrayList Ċ Ċ /** Ċ Ġ* Ġ æŃ£ åĪĻ åĮ¹éħį Ċ Ġ*/ Ċ fun ĠCharSequence ?. regex ( regex : ĠString ): ĠBoolean Ġ{ ĊĠĠĠ Ġreturn Ġ! this . isNull OrEmpty () Ġ&& ĠPattern . matches ( regex , Ġthis ) Ċ } Ċ Ċ /** Ċ Ġ* Ġ æŃ£ åĪĻ åĮ¹éħį åıį åĲĳ åĪ¤æĸŃ Ċ Ġ*/ Ċ fun ĠCharSequence ?. regex Not ( regex : ĠString ) Ġ= Ġ! regex ( regex ) Ċ Ċ /** Ċ Ġ* Ġ æŃ£ åĪĻ åĮ¹éħį Ċ Ġ*/ Ċ fun ĠCharSequence ?. regex Matches ( regex : ĠString ): ĠList < String > Ġ{ ĊĠĠĠ Ġif Ġ( this Ġ== Ġnull ) Ġreturn ĠCollections . emptyList () ĊĠĠĠ Ġval Ġmatches Ġ= ĠArrayList < String >() ĊĠĠĠ Ġval Ġpattern Ġ= ĠPattern . compile ( regex ) ĊĠĠĠ Ġval Ġmatcher Ġ= Ġpattern . matcher ( this ) ĊĠĠĠ Ġwhile Ġ( matcher . find ()) Ġmatches . add ( matcher . group ()) ĊĠĠĠ Ġreturn Ġmatches Ċ } Ċ Ċ /** Ċ Ġ* Ġ æŃ£ åĪĻ åĪĨ ç»Ħ Ċ Ġ*/ Ċ fun ĠCharSequence ?. regex Spl its ( regex : ĠString ): ĠArray < String > Ġ{ ĊĠĠĠ Ġreturn Ġthis ?. split ( regex . to Regex ()) ?. drop Last While Ġ{ Ġit . isEmpty () Ġ} ?. to Typed Array () Ġ?: ĠarrayOf () Ċ } Ċ Ċ /** Ċ Ġ* Ġ æŃ£ åĪĻ æĽ¿æį¢ é¦ĸ ä¸ª åĮ¹éħį é¡¹ Ċ Ġ*/ Ċ fun ĠCharSequence ?. regex Replace First ( regex : ĠString , Ġreplacement : ĠString ): ĠString Ġ{ ĊĠĠĠ Ġreturn Ġif Ġ( this Ġ== Ġnull ) Ġ"" Ġelse ĠPattern . compile ( regex ). matcher ( this ) ĊĠĠĠĠĠĠĠ Ġ. replace First ( replacement ) Ċ } Ċ Ċ /** Ċ Ġ* Ġ æŃ£ åĪĻ æĽ¿æį¢ åħ¨éĥ¨ åĮ¹éħį é¡¹ Ċ Ġ*/ Ċ fun ĠCharSequence ?. regex ReplaceAll ( regex : ĠString , Ġreplacement : ĠString ): ĠString Ġ{ ĊĠĠĠ Ġreturn Ġif Ġ( this Ġ== Ġnull ) Ġ"" Ġelse ĠPattern . compile ( regex ). matcher ( this ). replaceAll ( replacement ) Ċ } Ċ Ċ /** Ċ Ġ* Ġ æŃ£ åĪĻ å¸¸ éĩı Ċ Ġ*/ Ċ object ĠRegex Constants Ġ{ ĊĊĠĠĠ Ġ// åĮ¹éħį æķ°åŃĹ ãĢģ ä¸Ń èĭ± æĸĩ ãĢģ æłĩ çĤ¹ ç¬¦ åı· ĊĠĠĠ Ġconst Ġval ĠMATCH ER _ DEFAULT Ġ= Ġ"[ A - Za - z 0 - 9 \\ u 4 e 0 0 - \\ u 9 fa 5 \\ p { P }] +" ĊĊĠĠĠ Ġ// Ġ åĮ¹éħį æŃ£å¸¸ çļĦ çī¹æ®Ĭ åŃĹç¬¦ ĊĠĠĠ Ġconst Ġval ĠMATCH ER _ BQ Ġ= Ġ"[ ` ~ ! @ #$ %^ & * () += | {} ': ;', \\ [ \\ ]. <> /? ~ @ â ĳ ł # ï¿ ¥ % âĢ¦âĢ¦ & * ï¼Ī ï¼ī âĢĶâĢĶ + | {} ãĢĲ ãĢĳ âĢĺ ï¼Ľ ï¼ļ âĢĿ âĢľ âĢĻ ãĢģ ]" ĊĊĠĠĠ Ġconst Ġval ĠREG EX _ PASSWORD Ġ= Ġ"^ (? = .* [ A - Za - z ]) (? = .* \\ d )[ A - Za - z \\ d ~ ! @ &\ $ %^ * () _ # ]{ 8 , 1 6 }\ $" ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRegex Ġof Ġsimple Ġmobile . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġconst Ġval ĠREG EX _ MOB ILE _ SIMPLE Ġ= Ġ"^ [ 1 ]\\ d { 1 0 }$ " ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRegex Ġof Ġexact Ġmobile . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġch ina Ġmobile : Ġ 1 3 4 ( 0 - 8 ), Ġ 1 3 5 , Ġ 1 3 6 , Ġ 1 3 7 , Ġ 1 3 8 , Ġ 1 3 9 , Ġ 1 4 7 , Ġ 1 4 9 , Ġ 1 5 0 , Ġ 1 5 1 , Ġ 1 5 2 , Ġ 1 5 7 , Ġ 1 5 8 , Ġ 1 5 9 , Ġ 1 7 8 , Ġ 1 8 2 , Ġ 1 8 3 , Ġ 1 8 4 , Ġ 1 8 7 , Ġ 1 8 8 , Ġ 1 9 8 ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġch ina Ġun icom : Ġ 1 3 0 , Ġ 1 3 1 , Ġ 1 3 2 , Ġ 1 4 5 , Ġ 1 5 5 , Ġ 1 5 6 , Ġ 1 6 6 , Ġ 1 7 1 , Ġ 1 7 5 , Ġ 1 7 6 , Ġ 1 8 5 , Ġ 1 8 6 ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġch ina Ġtele com : Ġ 1 3 3 , Ġ 1 5 3 , Ġ 1 7 3 , Ġ 1 7 7 , Ġ 1 8 0 , Ġ 1 8 1 , Ġ 1 8 9 , Ġ 1 9 9 ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġglobal Ġstar : Ġ 1 3 4 9 ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġvirtual Ġoperator : Ġ 1 7 0 ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġconst Ġval ĠREG EX _ MOB ILE _ EX ACT Ġ= Ġ" 0 ?( 1 3 | 1 4 | 1 5 | 1 6 | 1 7 | 1 8 | 1 9 )[ 0 - 9 ]{ 9 }" ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRegex Ġof Ġtele phone Ġnumber . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġconst Ġval ĠREG EX _ TEL Ġ= Ġ"^ 0 \\ d { 2 , 3 } [- Ġ] ? \\ d { 7 , 8 }" ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRegex Ġof Ġid Ġcard Ġnumber Ġwhich Ġlength Ġis Ġ 1 5 . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġconst Ġval ĠREG EX _ ID _ CARD 1 5 Ġ= Ġ"^ [ 1 - 9 ]\\ d { 7 } (( 0 \\ d )| ( 1 [ 0 - 2 ])) (([ 0 | 1 | 2 ]\\ d )| 3 [ 0 - 1 ]) \\ d { 3 }$ " ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRegex Ġof Ġid Ġcard Ġnumber Ġwhich Ġlength Ġis Ġ 1 8 . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġconst Ġval ĠREG EX _ ID _ CARD 1 8 Ġ= ĊĠĠĠĠĠĠĠ Ġ"^ [ 1 - 9 ]\\ d { 5 }[ 1 - 9 ]\\ d { 3 } (( 0 \\ d )| ( 1 [ 0 - 2 ])) (([ 0 | 1 | 2 ]\\ d )| 3 [ 0 - 1 ]) \\ d { 3 } ([ 0 - 9 Xx ]) $" ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRegex Ġof Ġemail . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġconst Ġval ĠREG EX _ EMAIL Ġ= Ġ"^ \\ w + ([- + .] \\ w + )* @ \\ w + ([ -. ]\\ w + )* \\. \\ w + ([ -. ]\\ w + )* $" ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRegex Ġof Ġurl . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġconst Ġval ĠREG EX _ URL Ġ= Ġ"^ (( https | http | ftp | rt sp | m ms ) ?: \\/ \\ /) [^ \\ s ] +" ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRegex Ġof ĠChinese Ġcharacter . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġconst Ġval ĠREG EX _ ZH Ġ= Ġ"^ [ \\ u 4 e 0 0 - \\ u 9 fa 5 ]+ $" ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRegex Ġof Ġusername . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġscope Ġfor Ġ" a - z ", Ġ" A - Z ", Ġ" 0 - 9 ", Ġ"_ ", Ġ" Chinese Ġcharacter " ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġcan 't Ġend Ġwith Ġ"_" ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġlength Ġis Ġbetween Ġ 6 Ġto Ġ 2 0 ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġconst Ġval ĠREG EX _ USERNAME Ġ= Ġ"^ [ \\ w \\ u 4 e 0 0 - \\ u 9 fa 5 ]{ 6 , 2 0 } (? <! _) $" ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRegex Ġof Ġdate Ġwhich Ġpattern Ġis Ġ" yyyy - MM - dd ". ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġconst Ġval ĠREG EX _ DATE Ġ= ĊĠĠĠĠĠĠĠ Ġ"^ (?: (? ! 0 0 0 0 )[ 0 - 9 ]{ 4 } -( ?: (?: 0 [ 1 - 9 ]| 1 [ 0 - 2 ]) -( ?: 0 [ 1 - 9 ]| 1 [ 0 - 9 ]| 2 [ 0 - 8 ]) |( ?: 0 [ 1 3 - 9 ]| 1 [ 0 - 2 ]) -( ?: 2 9 | 3 0 )| (?: 0 [ 1 3 5 7 8 ]| 1 [ 0 2 ]) - 3 1 )| (?: [ 0 - 9 ]{ 2 }( ?: 0 [ 4 8 ] |[ 2 4 6 8 ][ 0 4 8 ] |[ 1 3 5 7 9 ][ 2 6 ]) |( ?: 0 [ 4 8 ] |[ 2 4 6 8 ][ 0 4 8 ] |[ 1 3 5 7 9 ][ 2 6 ]) 0 0 )- 0 2 - 2 9 )$ " ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRegex Ġof Ġip Ġaddress . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġconst Ġval ĠREG EX _ IP Ġ= Ġ" (( 2 [ 0 - 4 ]\\ d | 2 5 [ 0 - 5 ] |[ 0 1 ]? \\ d \\ d ?) \\. ){ 3 }( 2 [ 0 - 4 ]\\ d | 2 5 [ 0 - 5 ] |[ 0 1 ]? \\ d \\ d ? )" ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRegex Ġof Ġdouble - byte Ġcharacters . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġconst Ġval ĠREG EX _ DOUBLE _ BYTE _ CHAR Ġ= Ġ"[ ^ \\ x 0 0 - \\ xff ]" ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRegex Ġof Ġblank Ġline . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġconst Ġval ĠREG EX _ BLANK _ LINE Ġ= Ġ"\\ n \\ s * \\ r " ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRegex Ġof ĠQQ Ġnumber . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġconst Ġval ĠREG EX _ QQ _ NUM Ġ= Ġ"[ 1 - 9 ][ 0 - 9 ]{ 4 , }" ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRegex Ġof Ġpostal Ġcode Ġin ĠChina . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġconst Ġval ĠREG EX _ CH INA _ POST AL _ CODE Ġ= Ġ"[ 1 - 9 ]\\ d { 5 } (? ! \\ d )" ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRegex Ġof Ġpositive Ġinteger . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġconst Ġval ĠREG EX _ POSITIVE _ INTEGER Ġ= Ġ"^ [ 1 - 9 ]\\ d * $" ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRegex Ġof Ġnegative Ġinteger . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġconst Ġval ĠREG EX _ NEGATIVE _ INTEGER Ġ= Ġ"^ -[ 1 - 9 ]\\ d * $" ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRegex Ġof Ġinteger . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġconst Ġval ĠREG EX _ INTEGER Ġ= Ġ"^ - ?[ 1 - 9 ]\\ d * $" ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRegex Ġof Ġnon - negative Ġinteger . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġconst Ġval ĠREG EX _ NOT _ NEGATIVE _ INTEGER Ġ= Ġ"^ [ 1 - 9 ]\\ d * | 0 $" ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRegex Ġof Ġnon - positive Ġinteger . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġconst Ġval ĠREG EX _ NOT _ POSITIVE _ INTEGER Ġ= Ġ"^ -[ 1 - 9 ]\\ d * | 0 $" ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRegex Ġof Ġpositive Ġfloat . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġconst Ġval ĠREG EX _ POSITIVE _ FLOAT Ġ= Ġ"^ [ 1 - 9 ]\\ d * \\. \\ d * | 0 \\. \\ d *[ 1 - 9 ]\\ d * $" ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRegex Ġof Ġnegative Ġfloat . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġconst Ġval ĠREG EX _ NEGATIVE _ FLOAT Ġ= Ġ"^ -[ 1 - 9 ]\\ d * \\. \\ d * |- 0 \\. \\ d *[ 1 - 9 ]\\ d * $" Ċ }