ç¨javaçæ£åå§ï¼å
·ä½ä»£ç ä½ æä¸ä¸å°±å¯ä»¥äºï¼å¤§æ¦æè·¯æ¯å
å«æ°åå¼å¤´å°æ°ç¹ä»ä¹çã
å¦æä½ æ¾ç»ç¨è¿Perlæä»»ä½å
¶ä»å
建æ£å表达å¼æ¯æçè¯è¨ï¼ä½ ä¸å®ç¥éç¨æ£å表达å¼å¤çææ¬åå¹é
模å¼æ¯å¤ä¹ç®åãå¦æä½ ä¸çæè¿ä¸ªæ¯è¯ï¼é£ä¹âæ£å表达å¼âï¼Regular Expressionï¼å°±æ¯ä¸ä¸ªå符ææç串ï¼å®å®ä¹äºä¸ä¸ªç¨æ¥æç´¢å¹é
å符串ç模å¼ã
许å¤è¯è¨ï¼å
æ¬PerlãPHPãPythonãJavaScriptåJScriptï¼é½æ¯æç¨æ£å表达å¼å¤çææ¬ï¼ä¸äºææ¬ç¼è¾å¨ç¨æ£å表达å¼å®ç°é«çº§âæç´¢-æ¿æ¢âåè½ãé£ä¹Javaåææ ·å¢ï¼æ¬æåä½æ¶ï¼ä¸ä¸ªå
å«äºç¨æ£å表达å¼è¿è¡ææ¬å¤ççJavaè§èéæ±ï¼Specification Requestï¼å·²ç»å¾å°è®¤å¯ï¼ä½ å¯ä»¥æå¾
å¨JDKçä¸ä¸çæ¬ä¸çå°å®ã
ç¶èï¼å¦æç°å¨å°±éè¦ä½¿ç¨æ£å表达å¼ï¼å该æä¹åå¢ï¼ä½ å¯ä»¥ä»Apache.orgä¸è½½æºä»£ç å¼æ¾çJakarta-OROåºãæ¬ææ¥ä¸æ¥çå
容å
ç®è¦å°ä»ç»æ£å表达å¼çå
¥é¨ç¥è¯ï¼ç¶å以Jakarta-ORO API为ä¾ä»ç»å¦ä½ä½¿ç¨æ£å表达å¼ã
ä¸ãæ£å表达å¼åºç¡ç¥è¯
æ们å
ä»ç®åçå¼å§ãåè®¾ä½ è¦æç´¢ä¸ä¸ªå
å«å符âcatâçå符串ï¼æç´¢ç¨çæ£å表达å¼å°±æ¯âcatâãå¦ææ索对大å°åä¸ææï¼åè¯âcatalogâãâCatherineâãâsophisticatedâé½å¯ä»¥å¹é
ãä¹å°±æ¯è¯´ï¼
1.1 å¥ç¹ç¬¦å·
åè®¾ä½ å¨ç©è±ææ¼å游æï¼æ³è¦æ¾åºä¸ä¸ªåæ¯çåè¯ï¼èä¸è¿äºåè¯å¿
须以âtâåæ¯å¼å¤´ï¼ä»¥ânâåæ¯ç»æãå¦å¤ï¼å设æä¸æ¬è±æåå
¸ï¼ä½ å¯ä»¥ç¨æ£å表达å¼æç´¢å®çå
¨é¨å
容ãè¦æé åºè¿ä¸ªæ£å表达å¼ï¼ä½ å¯ä»¥ä½¿ç¨ä¸ä¸ªéé
符ââå¥ç¹ç¬¦å·â.âãè¿æ ·ï¼å®æ´ç表达å¼å°±æ¯ât.nâï¼å®å¹é
âtanâãâtenâãâtinâåâtonâï¼è¿å¹é
ât#nâãâtpnâçè³ât nâï¼è¿æå
¶ä»è®¸å¤æ æä¹çç»åãè¿æ¯å 为å¥ç¹ç¬¦å·å¹é
ææå符ï¼å
æ¬ç©ºæ ¼ãTabå符çè³æ¢è¡ç¬¦ï¼
1.2 æ¹æ¬å·ç¬¦å·
为äºè§£å³å¥ç¹ç¬¦å·å¹é
èå´è¿äºå¹¿æ³è¿ä¸é®é¢ï¼ä½ å¯ä»¥å¨æ¹æ¬å·ï¼â[]âï¼éé¢æå®çæ¥ææä¹çå符ãæ¤æ¶ï¼åªææ¹æ¬å·éé¢æå®çå符æåä¸å¹é
ãä¹å°±æ¯è¯´ï¼æ£å表达å¼ât[aeio]nâåªå¹é
âtanâãâTenâãâtinâåâtonâãä½âToonâä¸å¹é
ï¼å 为å¨æ¹æ¬å·ä¹å
ä½ åªè½å¹é
å个å符ï¼
1.3 âæâ符å·
å¦æé¤äºä¸é¢å¹é
çææåè¯ä¹å¤ï¼ä½ è¿æ³è¦å¹é
âtoonâï¼é£ä¹ï¼ä½ å¯ä»¥ä½¿ç¨â|âæä½ç¬¦ãâ|âæä½ç¬¦çåºæ¬æä¹å°±æ¯âæâè¿ç®ãè¦å¹é
âtoonâï¼ä½¿ç¨ât(a|e|i|o|oo)nâæ£å表达å¼ãè¿éä¸è½ä½¿ç¨æ¹æ©å·ï¼å 为æ¹æ¬å·åªå
许å¹é
å个å符ï¼è¿éå¿
须使ç¨åæ¬å·â()âãåæ¬å·è¿å¯ä»¥ç¨æ¥åç»ï¼å
·ä½è¯·åè§åé¢ä»ç»ã
1.4 表示å¹é
次æ°ç符å·
表ä¸æ¾ç¤ºäºè¡¨ç¤ºå¹é
次æ°ç符å·ï¼è¿äºç¬¦å·ç¨æ¥ç¡®å®ç´§é 该符å·å·¦è¾¹ç符å·åºç°ç次æ°ï¼
å设æ们è¦å¨ææ¬æ件ä¸æç´¢ç¾å½ç社ä¼å®å
¨å·ç ãè¿ä¸ªå·ç çæ ¼å¼æ¯999-99-9999ãç¨æ¥å¹é
å®çæ£å表达å¼å¦å¾ä¸æ示ãå¨æ£å表达å¼ä¸ï¼è¿å符ï¼â-âï¼æçç¹æ®çæä¹ï¼å®è¡¨ç¤ºä¸ä¸ªèå´ï¼æ¯å¦ä»0å°9ãå æ¤ï¼å¹é
社ä¼å®å
¨å·ç ä¸çè¿å符å·æ¶ï¼å®çåé¢è¦å ä¸ä¸ä¸ªè½¬ä¹å符â\âã
å¾ä¸ï¼å¹é
ææ123-12-1234å½¢å¼ç社ä¼å®å
¨å·ç
å设è¿è¡æç´¢çæ¶åï¼ä½ å¸æè¿å符å·å¯ä»¥åºç°ï¼ä¹å¯ä»¥ä¸åºç°ââå³ï¼999-99-9999å999999999é½å±äºæ£ç¡®çæ ¼å¼ãè¿æ¶ï¼ä½ å¯ä»¥å¨è¿å符å·åé¢å ä¸âï¼âæ°ééå®ç¬¦å·ï¼å¦å¾äºæ示ï¼
å¾äºï¼å¹é
ææ123-12-1234å123121234å½¢å¼ç社ä¼å®å
¨å·ç
ä¸é¢æ们åæ¥çå¦å¤ä¸ä¸ªä¾åãç¾å½æ±½è½¦çç
§çä¸ç§æ ¼å¼æ¯å个æ°åå ä¸äºä¸ªåæ¯ãå®çæ£å表达å¼åé¢æ¯æ°åé¨åâ[0-9]{4}âï¼åå ä¸åæ¯é¨åâ[A-Z]{2}âãå¾ä¸æ¾ç¤ºäºå®æ´çæ£å表达å¼ã
å¾ä¸ï¼å¹é
å
¸åçç¾å½æ±½è½¦çç
§å·ç ï¼å¦8836KV
1.5 âå¦â符å·
â^â符å·ç§°ä¸ºâå¦â符å·ãå¦æç¨å¨æ¹æ¬å·å
ï¼â^â表示ä¸æ³è¦å¹é
çå符ãä¾å¦ï¼å¾åçæ£å表达å¼å¹é
ææåè¯ï¼ä½ä»¥âXâåæ¯å¼å¤´çåè¯é¤å¤ã
å¾åï¼å¹é
ææåè¯ï¼ä½âXâå¼å¤´çé¤å¤
1.6 åæ¬å·å空ç½ç¬¦å·
å设è¦ä»æ ¼å¼ä¸ºâJune 26, 1951âççæ¥æ¥æä¸æååºæ份é¨åï¼ç¨æ¥å¹é
该æ¥æçæ£å表达å¼å¯ä»¥å¦å¾äºæ示ï¼
å¾äºï¼å¹é
ææMoth DD,YYYYæ ¼å¼çæ¥æ
æ°åºç°çâ\sâ符å·æ¯ç©ºç½ç¬¦å·ï¼å¹é
ææç空ç½å符ï¼å
æ¬Tabå符ãå¦æå符串æ£ç¡®å¹é
ï¼æ¥ä¸æ¥å¦ä½æååºæ份é¨åå¢ï¼åªéå¨æ份å¨å´å ä¸ä¸ä¸ªåæ¬å·å建ä¸ä¸ªç»ï¼ç¶åç¨ORO APIï¼æ¬æåé¢è¯¦ç»è®¨è®ºï¼æååºå®çå¼ãä¿®æ¹åçæ£å表达å¼å¦å¾å
æ示ï¼
å¾å
ï¼å¹é
ææMonth DD,YYYYæ ¼å¼çæ¥æï¼å®ä¹æ份å¼ä¸ºç¬¬ä¸ä¸ªç»
1.7 å
¶å®ç¬¦å·
为ç®ä¾¿èµ·è§ï¼ä½ å¯ä»¥ä½¿ç¨ä¸äºä¸ºå¸¸è§æ£å表达å¼å建çå¿«æ·ç¬¦å·ãå¦è¡¨äºæ示ï¼
表äºï¼å¸¸ç¨ç¬¦å·
ä¾å¦ï¼å¨åé¢ç¤¾ä¼å®å
¨å·ç çä¾åä¸ï¼ææåºç°â[0-9]âçå°æ¹æ们é½å¯ä»¥ä½¿ç¨â\dâãä¿®æ¹åçæ£å表达å¼å¦å¾ä¸æ示ï¼
å¾ä¸ï¼å¹é
ææ123-12-1234æ ¼å¼ç社ä¼å®å
¨å·ç
äºãJakarta-OROåº
æ许å¤æºä»£ç å¼æ¾çæ£å表达å¼åºå¯ä¾Javaç¨åºå使ç¨ï¼èä¸å®ä»¬ä¸ç许å¤æ¯æPerl 5å
¼å®¹çæ£å表达å¼è¯æ³ãæå¨è¿ééç¨çæ¯Jakarta-OROæ£å表达å¼åºï¼å®æ¯æå
¨é¢çæ£å表达å¼APIä¹ä¸ï¼èä¸å®ä¸Perl 5æ£å表达å¼å®å
¨å
¼å®¹ãå¦å¤ï¼å®ä¹æ¯ä¼åå¾æ好çAPIä¹ä¸ã
Jakarta-OROåºä»¥åå«åOROMatcherï¼Daniel Savarese大æ¹å°æå®èµ éç»äºJakarta Projectãä½ å¯ä»¥æç
§æ¬ææååèèµæºç说æä¸è½½å®ã
æé¦å
å°ç®è¦ä»ç»ä½¿ç¨Jakarta-OROåºæ¶ä½ å¿
é¡»å建å访é®ç对象ï¼ç¶åä»ç»å¦ä½ä½¿ç¨Jakarta-ORO APIã
ⲠPatternCompiler对象
é¦å
ï¼å建ä¸ä¸ªPerl5Compilerç±»çå®ä¾ï¼å¹¶æå®èµå¼ç»PatternCompileræ¥å£å¯¹è±¡ãPerl5Compileræ¯PatternCompileræ¥å£çä¸ä¸ªå®ç°ï¼å
è®¸ä½ ææ£å表达å¼ç¼è¯æç¨æ¥å¹é
çPattern对象ã
ⲠPattern对象
è¦ææ£å表达å¼ç¼è¯æPattern对象ï¼è°ç¨compiler对象çcompile()æ¹æ³ï¼å¹¶å¨è°ç¨åæ°ä¸æå®æ£å表达å¼ãä¾å¦ï¼ä½ å¯ä»¥æç
§ä¸é¢è¿ç§æ¹å¼ç¼è¯æ£å表达å¼ât[aeio]nâï¼
é»è®¤æ
åµä¸ï¼ç¼è¯å¨å建ä¸ä¸ªå¤§å°åææç模å¼ï¼patternï¼ãå æ¤ï¼ä¸é¢ä»£ç ç¼è¯å¾å°ç模å¼åªå¹é
âtinâãâtanâã âtenâåâtonâï¼ä½ä¸å¹é
âTinâåâtaNâãè¦å建ä¸ä¸ªå¤§å°åä¸ææç模å¼ï¼ä½ åºè¯¥å¨è°ç¨ç¼è¯å¨çæ¶åæå®ä¸ä¸ªé¢å¤çåæ°ï¼
å建好Pattern对象ä¹åï¼ä½ å°±å¯ä»¥éè¿PatternMatcherç±»ç¨è¯¥Pattern对象è¿è¡æ¨¡å¼å¹é
ã
ⲠPatternMatcher对象
PatternMatcherå¯¹è±¡æ ¹æ®Pattern对象åå符串è¿è¡å¹é
æ£æ¥ãä½ è¦å®ä¾åä¸ä¸ªPerl5Matcher类并æç»æèµå¼ç»PatternMatcheræ¥å£ãPerl5Matcherç±»æ¯PatternMatcheræ¥å£çä¸ä¸ªå®ç°ï¼å®æ ¹æ®Perl 5æ£å表达å¼è¯æ³è¿è¡æ¨¡å¼å¹é
ï¼
使ç¨PatternMatcher对象ï¼ä½ å¯ä»¥ç¨å¤ä¸ªæ¹æ³è¿è¡å¹é
æä½ï¼è¿äºæ¹æ³ç第ä¸ä¸ªåæ°é½æ¯éè¦æ ¹æ®æ£å表达å¼è¿è¡å¹é
çå符串ï¼
· boolean matches(String input, Pattern pattern)ï¼å½è¾å
¥å符串åæ£å表达å¼è¦ç²¾ç¡®å¹é
æ¶ä½¿ç¨ãæ¢å¥è¯è¯´ï¼æ£å表达å¼å¿
é¡»å®æ´å°æè¿°è¾å
¥å符串ã
· boolean matchesPrefix(String input, Pattern pattern)ï¼å½æ£å表达å¼å¹é
è¾å
¥å符串起å§é¨åæ¶ä½¿ç¨ã
· boolean contains(String input, Pattern pattern)ï¼å½æ£å表达å¼è¦å¹é
è¾å
¥å符串çä¸é¨åæ¶ä½¿ç¨ï¼å³ï¼å®å¿
é¡»æ¯ä¸ä¸ªå串ï¼ã
å¦å¤ï¼å¨ä¸é¢ä¸ä¸ªæ¹æ³è°ç¨ä¸ï¼ä½ è¿å¯ä»¥ç¨PatternMatcherInput对象ä½ä¸ºåæ°æ¿ä»£String对象ï¼è¿æ¶ï¼ä½ å¯ä»¥ä»å符串ä¸æåä¸æ¬¡å¹é
çä½ç½®å¼å§ç»§ç»è¿è¡å¹é
ãå½å符串å¯è½æå¤ä¸ªå串å¹é
ç»å®çæ£å表达å¼æ¶ï¼ç¨PatternMatcherInput对象ä½ä¸ºåæ°å°±å¾æç¨äºãç¨PatternMatcherInput对象ä½ä¸ºåæ°æ¿ä»£Stringæ¶ï¼ä¸è¿°ä¸ä¸ªæ¹æ³çè¯æ³å¦ä¸ï¼
· boolean matches(PatternMatcherInput input, Pattern pattern)
· boolean matchesPrefix(PatternMatcherInput input, Pattern pattern)
· boolean contains(PatternMatcherInput input, Pattern pattern)
ä¸ãåºç¨å®ä¾
ä¸é¢æ们æ¥ççJakarta-OROåºçä¸äºåºç¨å®ä¾ã
3.1 æ¥å¿æ件å¤ç
ä»»å¡ï¼åæä¸ä¸ªWebæå¡å¨æ¥å¿æ件ï¼ç¡®å®æ¯ä¸ä¸ªç¨æ·è±å¨ç½ç«ä¸çæ¶é´ãå¨å
¸åçBEA WebLogicæ¥å¿æ件ä¸ï¼æ¥å¿è®°å½çæ ¼å¼å¦ä¸ï¼
åæè¿ä¸ªæ¥å¿è®°å½ï¼å¯ä»¥åç°ï¼è¦ä»è¿ä¸ªæ¥å¿æ件æåçå
容æ两项ï¼IPå°åå页é¢è®¿é®æ¶é´ãä½ å¯ä»¥ç¨åç»ç¬¦å·ï¼åæ¬å·ï¼ä»æ¥å¿è®°å½æååºIPå°ååæ¶é´æ è®°ã
é¦å
æ们æ¥ççIPå°åãIPå°åæ4个åèææï¼æ¯ä¸ä¸ªåèçå¼å¨0å°255ä¹é´ï¼å个åèéè¿ä¸ä¸ªå¥ç¹åéãå æ¤ï¼IPå°åä¸çæ¯ä¸ä¸ªåèæè³å°ä¸ä¸ªãæå¤ä¸ä¸ªæ°åãå¾å
«æ¾ç¤ºäºä¸ºIPå°åç¼åçæ£å表达å¼ï¼
å¾å
«ï¼å¹é
IPå°å
IPå°åä¸çå¥ç¹å符å¿
é¡»è¿è¡è½¬ä¹å¤çï¼åé¢å ä¸â\âï¼ï¼å 为IPå°åä¸çå¥ç¹å
·æå®æ¬æ¥çå«ä¹ï¼èä¸æ¯éç¨æ£å表达å¼è¯æ³ä¸çç¹æ®å«ä¹ãå¥ç¹å¨æ£å表达å¼ä¸çç¹æ®å«ä¹æ¬æåé¢å·²ç»ä»ç»ã
æ¥å¿è®°å½çæ¶é´é¨åç±ä¸å¯¹æ¹æ¬å·å
å´ãä½ å¯ä»¥æç
§å¦ä¸æè·¯æååºæ¹æ¬å·éé¢çææå
容ï¼é¦å
æ索起å§æ¹æ¬å·å符ï¼â[âï¼ï¼æååºææä¸è¶
è¿ç»ææ¹æ¬å·å符ï¼â]âï¼çå
容ï¼åå寻æ¾ç´è³æ¾å°ç»ææ¹æ¬å·å符ãå¾ä¹æ¾ç¤ºäºè¿é¨åçæ£å表达å¼ã
å¾ä¹ï¼å¹é
è³å°ä¸ä¸ªå符ï¼ç´è³æ¾å°â]â
ç°å¨ï¼æä¸è¿°ä¸¤ä¸ªæ£å表达å¼å ä¸åç»ç¬¦å·ï¼åæ¬å·ï¼åå并æå个表达å¼ï¼è¿æ ·å°±å¯ä»¥ä»æ¥å¿è®°å½æååºIPå°ååæ¶é´ã注æï¼ä¸ºäºå¹é
â- -âï¼ä½ä¸æåå®ï¼ï¼æ£å表达å¼ä¸é´å å
¥äºâ\s-\s-\sâãå®æ´çæ£å表达å¼å¦å¾åæ示ã
å¾åï¼å¹é
IPå°ååæ¶é´æ è®°
ç°å¨æ£å表达å¼å·²ç»ç¼åå®æ¯ï¼æ¥ä¸æ¥å¯ä»¥ç¼å使ç¨æ£å表达å¼åºçJava代ç äºã
为使ç¨Jakarta-OROåºï¼é¦å
å建æ£å表达å¼å符串åå¾
åæçæ¥å¿è®°å½å符串ï¼
è¿é使ç¨çæ£å表达å¼ä¸å¾åçæ£å表达å¼å·®ä¸å¤å®å
¨ç¸åï¼ä½æä¸ç¹ä¾å¤ï¼å¨Javaä¸ï¼ä½ å¿
须对æ¯ä¸ä¸ªååçææ ï¼â\âï¼è¿è¡è½¬ä¹å¤çãå¾åä¸æ¯Javaç表示形å¼ï¼æ以æ们è¦å¨æ¯ä¸ªâ\âåé¢å ä¸ä¸ä¸ªâ\â以å
åºç°ç¼è¯é误ãéæ¾çæ¯ï¼è½¬ä¹å¤çè¿ç¨å¾å®¹æåºç°é误ï¼æ以åºè¯¥å°å¿è°¨æ
ãä½ å¯ä»¥é¦å
è¾å
¥æªç»è½¬ä¹å¤ççæ£å表达å¼ï¼ç¶åä»å·¦å°å³ä¾æ¬¡ææ¯ä¸ä¸ªâ\âæ¿æ¢æâ\\âãå¦æè¦å¤æ£ï¼ä½ å¯ä»¥è¯çæå®è¾åºå°å±å¹ä¸ã
åå§åå符串ä¹åï¼å®ä¾åPatternCompiler对象ï¼ç¨PatternCompilerç¼è¯æ£å表达å¼å建ä¸ä¸ªPattern对象ï¼
ç°å¨ï¼å建PatternMatcher对象ï¼è°ç¨PatternMatcheræ¥å£çcontain()æ¹æ³æ£æ¥å¹é
æ
åµï¼
æ¥ä¸æ¥ï¼å©ç¨PatternMatcheræ¥å£è¿åçMatchResult对象ï¼è¾åºå¹é
çç»ãç±äºlogEntryå符串å
å«å¹é
çå
容ï¼ä½ å¯ä»¥çå°ç±»å¦ä¸é¢çè¾åºï¼
3.2 HTMLå¤çå®ä¾ä¸
ä¸é¢ä¸ä¸ªä»»å¡æ¯åæHTML页é¢å
FONTæ è®°çææå±æ§ãHTML页é¢å
å
¸åçFONTæ è®°å¦ä¸æ示ï¼
ç¨åºå°æç
§å¦ä¸å½¢å¼ï¼è¾åºæ¯ä¸ä¸ªFONTæ è®°çå±æ§ï¼
å¨è¿ç§æ
åµä¸ï¼æå»ºè®®ä½ ä½¿ç¨ä¸¤ä¸ªæ£å表达å¼ã第ä¸ä¸ªå¦å¾åä¸æ示ï¼å®ä»åä½æ è®°æååºâ"face="Arial, Serif" size="+2" color="red"âã
å¾åä¸ï¼å¹é
FONTæ è®°çææå±æ§
第äºä¸ªæ£å表达å¼å¦å¾åäºæ示ï¼å®æå个å±æ§åå²æåå-å¼å¯¹ã
å¾åäºï¼å¹é
å个å±æ§ï¼å¹¶æå®åå²æåå-å¼å¯¹
åå²ç»æ为ï¼
ç°å¨æ们æ¥ççå®æè¿ä¸ªä»»å¡çJava代ç ãé¦å
å建两个æ£å表达å¼å符串ï¼ç¨Perl5Compileræå®ä»¬ç¼è¯æPattern对象ãç¼è¯æ£å表达å¼çæ¶åï¼æå®Perl5Compiler.CASE_INSENSITIVE_MASKé项ï¼ä½¿å¾å¹é
æä½ä¸åºå大å°åã
æ¥ä¸æ¥ï¼å建ä¸ä¸ªæ§è¡å¹é
æä½çPerl5Matcher对象ã
å设æä¸ä¸ªStringç±»åçåéhtmlï¼å®ä»£è¡¨äºHTMLæ件ä¸çä¸è¡å
容ãå¦æhtmlå符串å
å«FONTæ è®°ï¼å¹é
å¨å°è¿åtrueãæ¤æ¶ï¼ä½ å¯ä»¥ç¨å¹é
å¨å¯¹è±¡è¿åçMatchResult对象è·å¾ç¬¬ä¸ä¸ªç»ï¼å®å
å«äºFONTçææå±æ§ï¼
æ¥ä¸æ¥å建ä¸ä¸ªPatternMatcherInput对象ãè¿ä¸ªå¯¹è±¡å
è®¸ä½ ä»æåä¸æ¬¡å¹é
çä½ç½®å¼å§ç»§ç»è¿è¡å¹é
æä½ï¼å æ¤ï¼å®å¾éåäºæåFONTæ è®°å
å±æ§çåå-å¼å¯¹ãå建PatternMatcherInput对象ï¼ä»¥åæ°å½¢å¼ä¼ å
¥å¾
å¹é
çå符串ãç¶åï¼ç¨å¹é
å¨å®ä¾æååºæ¯ä¸ä¸ªFONTçå±æ§ãè¿éè¿æå®PatternMatcherInput对象ï¼èä¸æ¯å符串对象ï¼ä¸ºåæ°ï¼åå¤å°è°ç¨PatternMatcher对象çcontains()æ¹æ³å®æãPatternMatcherInput对象ä¹ä¸çæ¯ä¸æ¬¡è¿ä»£å°æå®å
é¨çæéåå移å¨ï¼ä¸ä¸æ¬¡æ£æµå°ä»åä¸æ¬¡å¹é
ä½ç½®çåé¢å¼å§ã
æ¬ä¾çè¾åºç»æå¦ä¸ï¼
3.3 HTMLå¤çå®ä¾äº
ä¸é¢æ们æ¥ççå¦ä¸ä¸ªå¤çHTMLçä¾åãè¿ä¸æ¬¡ï¼æ们åå®Webæå¡å¨ä»widgets.acme.com移å°äºnewserver.acme.comãç°å¨ä½ è¦ä¿®æ¹ä¸äºé¡µé¢ä¸çé¾æ¥ï¼
æ§è¡è¿ä¸ªæç´¢çæ£å表达å¼å¦å¾åä¸æ示ï¼
å¾åä¸ï¼å¹é
ä¿®æ¹åçé¾æ¥
å¦æè½å¤å¹é
è¿ä¸ªæ£å表达å¼ï¼ä½ å¯ä»¥ç¨ä¸é¢çå
容æ¿æ¢å¾åä¸çé¾æ¥ï¼
注æ#å符çåé¢å ä¸äº$1ãPerlæ£å表达å¼è¯æ³ç¨$1ã$2ç表示已ç»å¹é
ä¸æååºæ¥çç»ãå¾åä¸ç表达å¼æææä½ä¸ºä¸ä¸ªç»å¹é
åæååºæ¥çå
容éå å°é¾æ¥çåé¢ã
ç°å¨ï¼è¿åJavaã就象åé¢æ们æåçé£æ ·ï¼ä½ å¿
é¡»å建æµè¯å符串ï¼å建ææ£å表达å¼ç¼è¯å°Pattern对象æå¿
éç对象ï¼ä»¥åå建ä¸ä¸ªPatternMatcher对象ï¼
æ¥ä¸æ¥ï¼ç¨com.oroinc.text.regexå
Utilç±»çsubstitute()éææ¹æ³è¿è¡æ¿æ¢ï¼è¾åºç»æå符串ï¼
Util.substitute()æ¹æ³çè¯æ³å¦ä¸ï¼
è¿ä¸ªè°ç¨çå两个åæ°æ¯ä»¥åå建çPatternMatcheråPattern对象ã第ä¸ä¸ªåæ°æ¯ä¸ä¸ªSubstiution对象ï¼å®å³å®äºæ¿æ¢æä½å¦ä½è¿è¡ãæ¬ä¾ä½¿ç¨çæ¯Perl5Substitution对象ï¼å®è½å¤è¿è¡Perl5é£æ ¼çæ¿æ¢ã第å个åæ°æ¯æ³è¦è¿è¡æ¿æ¢æä½çå符串ï¼æåä¸ä¸ªåæ°å
许æå®æ¯å¦æ¿æ¢æ¨¡å¼çææå¹é
å串ï¼Util.SUBSTITUTE_ALLï¼ï¼æåªæ¿æ¢æå®ç次æ°ã
ãç»æè¯ãå¨è¿ç¯æç« ä¸ï¼æä¸ºä½ ä»ç»äºæ£å表达å¼ç强大åè½ãåªè¦æ£ç¡®è¿ç¨ï¼æ£å表达å¼è½å¤å¨å符串æååææ¬ä¿®æ¹ä¸èµ·å°å¾å¤§çä½ç¨ãå¦å¤ï¼æè¿ä»ç»äºå¦ä½å¨Javaç¨åºä¸éè¿Jakarta-OROåºå©ç¨æ£å表达å¼ãè³äºæç»éç¨èå¼çå符串å¤çæ¹å¼ï¼ä½¿ç¨StringTokenizerï¼charAtï¼åsubstringï¼ï¼è¿æ¯éç¨æ£å表达å¼ï¼è¿å°±æå¾
ä½ èªå·±å³å®äºã
温馨提示:答案为网友推荐,仅供参考