锘??xml version="1.0" encoding="utf-8" standalone="yes"?>337P日本欧洲亚洲大胆精品,亚洲日韩乱码中文字幕,亚洲欧洲日本在线http://www.tkk7.com/JRobot/category/2761.htmljava鐩稿叧鎶鏈?eclipse,swt,jfacezh-cnFri, 02 Mar 2007 03:21:37 GMTFri, 02 Mar 2007 03:21:37 GMT60hashCode 鏂規硶瀹炵幇瑙勫垯http://www.tkk7.com/JRobot/articles/69434.htmlJRobotJRobotWed, 13 Sep 2006 10:33:00 GMThttp://www.tkk7.com/JRobot/articles/69434.htmlhttp://www.tkk7.com/JRobot/comments/69434.htmlhttp://www.tkk7.com/JRobot/articles/69434.html#Feedback0http://www.tkk7.com/JRobot/comments/commentRss/69434.htmlhttp://www.tkk7.com/JRobot/services/trackbacks/69434.html2銆佸浜庡璞′腑鐨勬瘡涓涓叧閿煙f 錛堟寚equals 鏂規硶涓冭檻鐨勬瘡涓涓煙錛夛紝瀹屾垚浠ヤ笅姝ラ錛?

  • 涓鴻鍩熻綆梚nt 綾誨瀷鐨勬暎鍒楃爜c錛?
    • 濡傛灉璇ュ煙鏄痓oolean 綾誨瀷錛屽垯璁$畻(f ? 1 : 0)錛?
    • 濡傛灉璇ュ煙鏄痓yte銆乧har銆乻hort 鎴栬卛nt 綾誨瀷錛屽垯璁$畻(int)f錛?
    • 濡傛灉璇ュ煙鏄痩ong 綾誨瀷錛屽垯璁$畻(int)(f ^ (f >>> 32))錛?
    • 濡傛灉璇ュ煙鏄痜loat 綾誨瀷錛屽垯璁$畻Float.floatToIntBits(f)錛?
    • 濡傛灉璇ュ煙鏄痙ouble 綾誨瀷錛屽垯璁$畻Double.doubleToLongBits(f) 寰楀埌涓涓猯ong 綾誨瀷鐨勫鹼紝鐒跺悗鎸夌収姝ラ2.a.iii 瀵硅long 綾誨瀷璁$畻鏁e垪鍊鹼紱
    • 濡? 鏋滆鍩熸槸涓涓璞″紩鐢紝騫朵笖璇ョ被鐨別quals 鏂規硶閫氳繃閫掑綊璋冪敤equals 鐨勬柟寮忔潵姣旇緝榪欎釜鍩燂紝鍒欏悓鏍峰榪欎釜鍩熼掑綊璋冪敤hashCode 鏂規硶錛涘鏋滆姹備竴涓洿涓哄鏉傜殑姣旇緝錛屽垯涓鴻繖涓煙璁$畻涓涓滆鑼冭〃紺衡濓紝鐒跺悗閽堝榪欎釜瑙勮寖琛ㄧず璋冪敤hashCode銆傚鏋滆繖涓煙鐨勫間負null錛屽垯榪斿洖0錛?
    • 濡傛灉璇ュ煙鏄竴涓暟緇勶紝鍒欐妸姣忎竴涓厓绱犲綋鍋氬崟鐙殑鍩熸潵澶勭悊銆傜劧鍚庢牴鎹楠?.b 涓殑鍋氭硶鎶婅繖浜涙暎鍒楀肩粍鍚堣搗鏉ャ?

  • 鎸夌収涓嬮潰鐨勫叕寮忥紝鎶婃楠 涓綆楀緱鍒扮殑鏁e垪鐮乧 緇勫悎鍒皉esult 涓細
    result 錛?37 * result + c;

3銆佽繑鍥瀝esult 鍊箋?/p>

娉細鏍規嵁瀹炶返緇忛獙錛屽湪瀵笰SCII 涓茬殑鏁e垪鍑芥暟涓紝31 鍜?7 鏄緢濂界殑鏁e垪鍥犲瓙銆?/p>

JRobot 2006-09-13 18:33 鍙戣〃璇勮
]]>
Java姝e垯琛ㄨ揪寮?/title><link>http://www.tkk7.com/JRobot/articles/69361.html</link><dc:creator>JRobot</dc:creator><author>JRobot</author><pubDate>Wed, 13 Sep 2006 05:37:00 GMT</pubDate><guid>http://www.tkk7.com/JRobot/articles/69361.html</guid><wfw:comment>http://www.tkk7.com/JRobot/comments/69361.html</wfw:comment><comments>http://www.tkk7.com/JRobot/articles/69361.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/JRobot/comments/commentRss/69361.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/JRobot/services/trackbacks/69361.html</trackback:ping><description><![CDATA[ <table height="146" cellspacing="0" cellpadding="0" width="684" align="center" border="0"> <tbody> <tr> <td height="80"> <table class="ArticleTeitle" height="47" cellspacing="0" cellpadding="0" width="100%" align="center" border="0"> <tbody> <tr> <td width="72%" bgcolor="#b5daff" height="45"> <div align="center"> <font face="榛戜綋" color="#333333" size="4">Java姝e垯琛ㄨ揪寮?/font> </div> </td> <td width="15%" bgcolor="#b5daff"> <p align="right">聽</p> </td> <td width="1%" bgcolor="#b5daff">聽</td> <td width="12%" bgcolor="#b5daff"> </td> </tr> </tbody> </table> <table cellspacing="0" cellpadding="0" width="100%" border="0"> <tbody> <tr> <td valign="top" width="760"> <p>聽聽聽聽<br />聽聽聽聽聽聽聽 姝e垯琛ㄨ揪寮忔槸涓縐嶅姛鑳藉己澶т絾鍙堥潪甯哥伒媧葷殑鏂囨湰澶勭悊宸ュ叿銆傚畠鑳借浣犵敤緙栫▼鐨勬柟寮忔潵鎻忚堪澶嶆潅鐨勬枃鏈ā寮忥紝鐒跺悗鍦ㄥ瓧絎︿覆閲屾妸瀹冩壘鍑烘潵銆備竴鏃︿綘鎵懼埌浜嗚繖縐嶆ā寮忥紝浣犲氨鑳介殢蹇冩墍嬈插湴澶勭悊榪欎簺鏂囨湰浜嗐傝櫧鐒跺垵鐪嬭搗鏉ユ鍒欒〃杈懼紡鐨勮娉曟湁鐐硅浜烘湜鑰岀敓鐣忥紝浣嗗畠鎻愪緵浜嗕竴縐嶇簿緇冪殑鍔ㄦ佽璦錛屼嬌鎴戜滑鑳界敤涓縐嶉氱敤鐨勬柟寮忔潵瑙e喅鍚勭瀛楃涓茬殑闂錛屽寘鎷尮閰嶏紝閫夋嫨錛岀紪杈戜互鍙婃牎楠屻?/p> <h3 id="header56">鍒涘緩姝e垯琛ㄨ揪寮?/h3> <p>浣犲彲浠ヤ粠姣旇緝綆鍗曠殑涓滆タ鍏ユ墜瀛︿範姝e垯琛ㄨ揪寮忋傝鎯沖叏闈㈠湴鎺屾彙鎬庢牱鏋勫緩姝e垯琛ㄨ揪寮忥紝鍙互鍘葷湅<span id="bjlljnx" class="original_words">JDK</span>鏂囨。鐨?span class="original_words">java.util.regex</span>鐨?span class="original_words">Pattern</span>綾葷殑鏂囨。銆?/p> <table class="narration" cellspacing="0" bordercolordark="#000000" cellpadding="2" bordercolorlight="#000000" border="2"> <tbody> <tr> <th colspan="2">瀛楃</th> </tr> <tr> <td> <span id="lnltztv" class="original_words">B</span> </td> <td>瀛楃<span id="htptbzj" class="original_words">B</span></td> </tr> <tr> <td> <span id="pvhllnt" class="original_words">\xhh</span> </td> <td>16榪涘埗鍊?span class="original_words">0xhh</span>鎵琛ㄧず鐨勫瓧絎?/td> </tr> <tr> <td> <span id="jnrtjlt" class="original_words">\uhhhh</span> </td> <td>16榪涘埗鍊?span class="original_words">0xhhhh</span>鎵琛ㄧず鐨刄nicode瀛楃</td> </tr> <tr> <td> <span id="dprvpzh" class="original_words">\t</span> </td> <td>Tab</td> </tr> <tr> <td> <span id="xzlhjjr" class="original_words">\n</span> </td> <td>鎹㈣絎?/td> </tr> <tr> <td> <span id="xztnjbj" class="original_words">\r</span> </td> <td>鍥炶濺絎?/td> </tr> <tr> <td> <span id="rtxbnfv" class="original_words">\f</span> </td> <td>鎹㈤〉絎?/td> </tr> <tr> <td> <span id="btntdzd" class="original_words">\e</span> </td> <td>Escape</td> </tr> </tbody> </table> <p>姝e垯琛ㄨ揪寮忕殑寮哄ぇ浣撶幇鍦ㄥ畠鑳藉畾涔夊瓧絎﹂泦(character class)銆備笅闈㈡槸涓浜涙渶甯歌鐨勫瓧絎﹂泦鍙婂叾瀹氫箟鐨勬柟寮忥紝姝ゅ榪樻湁涓浜涢瀹氫箟鐨勫瓧絎﹂泦錛?/p> <pre>聽</pre> </td> </tr> </tbody> </table> <p>聽</p> <table class="narration" cellspacing="0" bordercolordark="#000000" cellpadding="2" bordercolorlight="#000000" border="2"> <tbody> <tr valign="top"> <th colspan="2"> <span id="dhtfrrp" class="original_words">瀛楃闆?/span> </th> </tr> <tr valign="top"> <td valign="top"> <span id="vfznzfh" class="original_words">.</span> </td> <td valign="top">琛ㄧず浠繪剰涓涓瓧絎?</td> </tr> <tr valign="top"> <td valign="top" width="131"> <span id="jdfjfvf" class="original_words">[abc]</span> </td> <td valign="top" width="311">琛ㄧず瀛楃<span id="dnzvhzf" class="original_words">a</span>錛?span class="original_words">b</span>錛?span class="original_words">c</span>涓殑浠繪剰涓涓?涓?span class="original_words">a|b|c</span>鐩稿悓) </td> </tr> <tr valign="top"> <td valign="top" width="131"> <span id="xrfhttj" class="original_words">[^abc]</span> </td> <td valign="top" width="311">闄?span class="original_words">a</span>錛?span class="original_words">b</span>錛?span class="original_words">c</span>涔嬪鐨勪換鎰忎竴涓瓧絎?鍚﹀畾) </td> </tr> <tr valign="top"> <td valign="top" width="131"> <span id="rlxbnvd" class="original_words">[a-zA-Z]</span> </td> <td valign="top" width="311">浠?span class="original_words">a</span>鍒?span class="original_words">z</span>鎴?span class="original_words">A</span>鍒?span class="original_words">Z</span>褰撲腑鐨勪換鎰忎竴涓瓧絎?鑼冨洿) </td> </tr> <tr valign="top"> <td valign="top" width="131"> <span id="bnpbnlv" class="original_words">[abc[hij]]</span> </td> <td valign="top" width="311"> <span id="pbndxnx" class="original_words">a,b,c,h,i,j</span>涓殑浠繪剰涓涓瓧絎?涓?span class="original_words">a|b|c|h|i|j</span>鐩稿悓)(騫墮泦) </td> </tr> <tr valign="top"> <td valign="top" width="131"> <span id="zbpzdlx" class="original_words">[a-z&&[hij]]</span> </td> <td valign="top" width="311"> <span id="bdpbfnp" class="original_words">h,i,j</span>涓殑涓涓?浜ら泦) </td> </tr> <tr valign="top"> <td valign="top" width="131"> <span id="vnztxxf" class="original_words">\s</span> </td> <td valign="top" width="311">絀烘牸瀛楃(絀烘牸閿? tab, 鎹㈣, 鎹㈤〉, 鍥炶濺) </td> </tr> <tr valign="top"> <td valign="top" width="131"> <span id="lvthjzr" class="original_words">\S</span> </td> <td valign="top" width="311">闈炵┖鏍煎瓧絎?<span id="lxblhpx" class="original_words">[^\s]</span>) </td> </tr> <tr valign="top"> <td valign="top" width="131"> <span id="zbfhvdt" class="original_words">\d</span> </td> <td valign="top" width="311">涓涓暟瀛楋紝涔熷氨鏄?span class="original_words">[0-9]</span></td> </tr> <tr valign="top"> <td valign="top" width="131"> <span id="zbxhlfp" class="original_words">\D</span> </td> <td valign="top" width="311">涓涓潪鏁板瓧鐨勫瓧絎︼紝涔熷氨鏄?span class="original_words">[^0-9]</span></td> </tr> <tr valign="top"> <td valign="top" width="131"> <span id="znztpzz" class="original_words">\w</span> </td> <td valign="top" width="311">涓涓崟璇嶅瓧絎?word character)錛屽嵆<span id="rvhrvvd" class="original_words">[a-zA-Z_0-9]</span></td> </tr> <tr valign="top"> <td valign="top" width="131"> <span id="jdptvdl" class="original_words">\W</span> </td> <td valign="top" width="311">涓涓潪鍗曡瘝鐨勫瓧絎︼紝<span id="llhjxvd" class="original_words">[^\w]</span></td> </tr> </tbody> </table> <p>聽聽聽聽聽聽聽聽濡傛灉浣犵敤榪囧叾瀹冭璦鐨勬鍒欒〃杈懼紡錛岄偅涔堜綘涓鐪煎氨鑳界湅鍑哄弽鏂滄潬鐨勪笌浼椾笉鍚屻傚湪鍏跺畠璇█閲岋紝"<span id="rbvjtjj" class="original_words">\\</span>"鐨勬剰鎬濇槸"鎴戝彧鏄鍦ㄦ鍒欒〃杈懼紡閲屾彃鍏ヤ竴涓弽鏂滄潬銆傛病浠涔堢壒鍒殑鎰忔濄?浣嗘槸鍦↗ava閲岋紝"<span id="jdpjffv" class="original_words">\\</span>"鐨勬剰鎬濇槸"鎴戣鎻掑叆涓涓鍒欒〃杈懼紡鐨勫弽鏂滄潬錛屾墍浠ヨ窡鍦ㄥ畠鍚庨潰鐨勯偅涓瓧絎︾殑鎰忔濆氨鍙樹簡銆?涓句緥鏉ヨ錛屽鏋滀綘鎯寵〃紺轟竴涓垨鏇村鐨?鍗曡瘝瀛楃"錛岄偅涔堣繖涓鍒欒〃杈懼紡灝卞簲璇ユ槸"<span id="vrdnjzx" class="original_words">\\w+</span>"銆傚鏋滀綘瑕佹彃鍏ヤ竴涓弽鏂滄潬錛岄偅灝卞緱鐢?<span id="vzdnbzr" class="original_words">\\\\</span>"銆備笉榪囧儚鎹㈣錛岃煩鏍間箣綾葷殑榪樻槸鍙敤涓鏍瑰弽鏂滄潬錛?\n\t"銆?/p> <p>榪欓噷鍙粰浣犺涓涓緥瀛愶紱浣犲簲璇ュ皢<span id="vpjnxhp" class="original_words">JDK</span>鏂囨。鐨?span class="original_words">java.util.regex.Pattern</span>鍔犲埌鏀惰棌澶歸噷錛岃繖鏍峰氨鑳藉緢瀹規槗鍦版壘鍒板悇縐嶆鍒欒〃杈懼紡鐨勬ā寮忎簡銆?/p> <table class="narration" cellspacing="0" bordercolordark="#000000" cellpadding="2" bordercolorlight="#000000" border="2"> <tbody> <tr> <th colspan="2">閫昏緫榪愮畻絎?</th> </tr> <tr> <td>XY</td> <td>X 鍚庨潰璺熺潃 Y</td> </tr> <tr> <td>X|Y</td> <td>X鎴朰</td> </tr> <tr> <td>(X)</td> <td>涓涓?瑕佸尮閰嶇殑緇?capturing group)". 浠ュ悗鍙互鐢╘i鏉ヨ〃紺虹i涓鍖歸厤鐨勭粍銆?/td> </tr> </tbody> </table> <p> </p> <table class="narration" cellspacing="0" bordercolordark="#000000" cellpadding="2" bordercolorlight="#000000" border="2"> <tbody> <tr valign="top"> <th valign="top" width="383" colspan="2">杈圭晫鍖歸厤絎?</th> </tr> <tr valign="top"> <td valign="top" width="143"> <span id="jvrthpf" class="original_words">^</span> </td> <td valign="top" width="239">涓琛岀殑寮濮?</td> </tr> <tr valign="top"> <td valign="top" width="143"> <span id="jdptxxd" class="original_words">$</span> </td> <td valign="top" width="239">涓琛岀殑緇撳熬 </td> </tr> <tr valign="top"> <td valign="top" width="143"> <span id="dptxrzp" class="original_words">\b</span> </td> <td valign="top" width="239">涓涓崟璇嶇殑杈圭晫 </td> </tr> <tr valign="top"> <td valign="top" width="143"> <span id="hbpbdfv" class="original_words">\B</span> </td> <td valign="top" width="239">涓涓潪鍗曡瘝鐨勮竟鐣?</td> </tr> <tr valign="top"> <td valign="top" width="143"> <span id="hjnrdbt" class="original_words">\G</span> </td> <td valign="top" width="239">鍓嶄竴涓尮閰嶇殑緇撴潫 </td> </tr> </tbody> </table> <p>涓句竴涓叿浣撲竴浜涚殑渚嬪瓙銆備笅闈㈣繖浜涙鍒欒〃杈懼紡閮芥槸鍚堟硶鐨勶紝鑰屼笖閮借兘鍖歸厤"Rudolph"錛?/p> <blockquote> <pre>Rudolph [rR]udolph [rR][aeiou][a-z]ol.* R.*</pre> </blockquote> <h3 id="header57">鏁伴噺琛ㄧず絎?/h3> <p>"鏁伴噺琛ㄧず絎?quantifier)"鐨勪綔鐢ㄦ槸瀹氫箟妯″紡搴旇鍖歸厤澶氬皯涓瓧絎︺?/p> <ul> <li>Greedy(璐┆鐨?錛?闄ら潪鍙︽湁琛ㄧず錛屽惁鍒欐暟閲忚〃紺虹閮芥槸greedy鐨勩侴reedy鐨勮〃杈懼紡浼氫竴鐩村尮閰嶄笅鍘伙紝鐩村埌鍖歸厤涓嶄笅鍘諱負姝€?u>(濡傛灉浣犲彂鐜拌〃杈懼紡鍖歸厤鐨勭粨鏋滀笌棰勬湡鐨勪笉絎?</u>錛屽緢鏈夊彲鑳芥槸鍥犱負錛屼綘浠ヤ負琛ㄨ揪寮忎細鍙尮閰嶅墠闈㈠嚑涓瓧絎︼紝鑰屽疄闄呬笂瀹冩槸greedy鐨勶紝鍥犳浼氫竴鐩村尮閰嶄笅鍘匯? </li> <li>Reluctant(鍕夊己鐨?錛?鐢ㄩ棶鍙瘋〃紺猴紝瀹冧細鍖歸厤鏈灝戠殑瀛楃銆備篃縐頒負lazy, minimal matching, non-greedy, 鎴杣ngreedy銆? </li> <li>Possessive(鍗犳湁鐨?錛?鐩墠鍙湁Java鏀寔(鍏跺畠璇█閮戒笉鏀寔)銆傚畠鏇村姞鍏堣繘錛屾墍浠ヤ綘鍙兘榪樹笉澶細鐢ㄣ傜敤姝e垯琛ㄨ揪寮忓尮閰嶅瓧絎︿覆鐨勬椂鍊欎細浜х敓寰堝涓棿鐘舵侊紝<u>(涓鑸殑鍖歸厤寮曟搸浼氫繚瀛樿繖縐嶄腑闂寸姸鎬侊紝)</u>榪欐牱鍖歸厤澶辮觸鐨勬椂鍊欏氨鑳藉師璺繑鍥炰簡銆傚崰鏈夊瀷鐨勮〃杈懼紡涓嶄繚瀛樿繖縐嶄腑闂寸姸鎬侊紝鍥犳涔熷氨涓嶄細鍥炲ご閲嶆潵浜嗐傚畠鑳介槻姝㈡鍒欒〃杈懼紡鐨勫け鎺э紝鍚屾椂涔熻兘鎻愰珮榪愯鐨勬晥鐜囥?</li> </ul> <table class="narration" cellspacing="0" bordercolordark="#000000" cellpadding="2" bordercolorlight="#000000" border="2"> <tbody> <tr valign="top"> <th> <span id="dfrdxxv" class="original_words">Greedy</span> </th> <th> <span id="tvzbxxx" class="original_words">Reluctant</span> </th> <th> <span id="zlvzntd" class="original_words">Possessive</span> </th> <th>鍖歸厤 </th> </tr> <tr valign="top"> <td valign="top" width="71"> <span id="pjlpdxv" class="original_words">X?</span> </td> <td valign="top" width="86"> <span id="jvzlfxf" class="original_words">X??</span> </td> <td valign="top" width="93"> <span id="tdzlpxv" class="original_words">X?+</span> </td> <td valign="top" width="231">鍖歸厤涓涓垨闆朵釜<span id="vhbvrrh" class="original_words">X</span></td> </tr> <tr valign="top"> <td valign="top" width="71"> <span id="nrtltnv" class="original_words">X*</span> </td> <td valign="top" width="86"> <span id="lvhlnvd" class="original_words">X*?</span> </td> <td valign="top" width="93"> <span id="lxjfrph" class="original_words">X*+</span> </td> <td valign="top" width="231">鍖歸厤闆舵垨澶氫釜<span id="hbhlffv" class="original_words">X</span></td> </tr> <tr valign="top"> <td valign="top" width="71"> <span id="rtprfnp" class="original_words">X+</span> </td> <td valign="top" width="86"> <span id="tlhtpfv" class="original_words">X+?</span> </td> <td valign="top" width="93"> <span id="flvzldd" class="original_words">X++</span> </td> <td valign="top" width="231">鍖歸厤涓涓垨澶氫釜<span id="zthtnvd" class="original_words">X</span></td> </tr> <tr valign="top"> <td valign="top" width="71"> <span id="rdzlxnd" class="original_words">X{n}</span> </td> <td valign="top" width="86"> <span id="zbxlvfd" class="original_words">X{n}?</span> </td> <td valign="top" width="93"> <span id="rlvzflt" class="original_words">X{n}+</span> </td> <td valign="top" width="231">鍖歸厤姝eソn涓?span class="original_words">X</span></td> </tr> <tr valign="top"> <td valign="top" width="71"> <span id="lpbnzpx" class="original_words">X{n,}</span> </td> <td valign="top" width="86"> <span id="ttzlnvf" class="original_words">X{n,}?</span> </td> <td valign="top" width="93"> <span id="nzbfjbh" class="original_words">X{n,}+</span> </td> <td valign="top" width="231">鍖歸厤鑷沖皯n涓?span class="original_words">X</span></td> </tr> <tr valign="top"> <td valign="top" width="71"> <span id="lnrfddb" class="original_words">X{n,m}</span> </td> <td valign="top" width="86"> <span id="rvpjvvl" class="original_words">X{n,m}?</span> </td> <td valign="top" width="93"> <span id="tfbdppp" class="original_words">X{n,m}+</span> </td> <td valign="top" width="231">鍖歸厤鑷沖皯n涓紝鑷沖m涓?span class="original_words">X</span></td> </tr> </tbody> </table> <p>鍐嶆彁閱掍竴涓嬶紝瑕佹兂璁╄〃杈懼紡鐓т綘鐨勬剰鎬濆幓榪愯錛屼綘搴旇鐢ㄦ嫭鍙鋒妸'X'鎷搗鏉ャ傛瘮鏂硅錛?/p> <blockquote> <pre>abc+</pre> </blockquote> <p>榪欎釜琛ㄨ揪寮忕殑鎰忔濇槸'ab'鍚庤竟璺熺潃涓涓垨澶氫釜'c'銆傝鎯沖尮閰嶄竴涓垨澶氫釜瀹屾暣鐨?abc'錛屼綘搴旇榪欐牱錛?/p> <blockquote> <pre>(abc)+</pre> </blockquote> <h4 id="header58">CharSequence</h4> <p>JDK 1.4瀹氫箟浜嗕竴涓柊鐨勬帴鍙o紝鍙?span class="original_words">CharSequence</span>銆傚畠鎻愪緵浜?span class="original_words">String</span>鍜?span class="original_words">StringBuffer</span>榪欎袱涓被鐨勫瓧絎﹀簭鍒楃殑鎶借薄錛?/p> <blockquote> <pre> <font color="#0000ff">interface</font> CharSequence { charAt(<font color="#0000ff">int</font> i); length(); subSequence(<font color="#0000ff">int</font> start, <font color="#0000ff">int</font> end); toString(); }</pre> </blockquote> <p>涓轟簡瀹炵幇榪欎釜鏂扮殑<span id="phdfjzr" class="original_words">CharSequence</span>鎺ュ彛錛?span class="original_words">String</span>錛?span class="original_words">StringBuffer</span>浠ュ強<span id="npdpbzp" class="original_words">CharBuffer</span>閮戒綔浜嗕慨鏀廣傚緢澶氭鍒欒〃杈懼紡鐨勬搷浣滈兘瑕佹嬁<span id="zjdplbb" class="original_words">CharSequence</span>浣滃弬鏁般?/p> <h3 id="header59"> <span id="pjdnbzh" class="original_words">Pattern</span>鍜?span class="original_words">Matcher</span></h3> <p>鍏堢粰涓涓緥瀛愩備笅闈㈣繖孌電▼搴忓彲浠ユ祴璇曟鍒欒〃杈懼紡鏄惁鍖歸厤瀛楃涓層傜涓涓弬鏁版槸瑕佸尮閰嶇殑瀛楃涓詫紝鍚庨潰鏄鍒欒〃杈懼紡銆傛鍒欒〃杈懼紡鍙互鏈夊涓傚湪Unix/Linux鐜涓嬶紝鍛戒護琛屼笅鐨勬鍒欒〃杈懼紡榪樺繀欏葷敤寮曞彿銆?/p> <p>褰撲綘鍒涘緩姝e垯琛ㄨ揪寮忔椂錛屽彲浠ョ敤榪欎釜紼嬪簭鏉ュ垽鏂畠鏄笉鏄細鎸夌収浣犵殑瑕佹眰宸ヤ綔銆?/p> <table class="sourcecode" width="713"> <tbody> <tr> <td width="705"> <pre> <font color="#009900">//: c12:TestRegularExpression.java</font> <font color="#009900">// Allows you to easly try out regular expressions.</font> <font color="#009900">// {Args: abcabcabcdefabc "abc+" "(abc)+" "(abc){2,}" }</font> <font color="#0000ff">import</font> java.util.regex.*; <font color="#0000ff">public</font><font color="#0000ff">class</font> TestRegularExpression { <font color="#0000ff">public</font><font color="#0000ff">static</font><font color="#0000ff">void</font> main(String[] args) { <font color="#0000ff">if</font>(args.length < 2) { System.out.println(<font color="#004488">"Usage:\n"</font> +<font color="#004488">"java TestRegularExpression "</font> +<font color="#004488">"characterSequence regularExpression"</font>); System.exit(0); } System.out.println(<font color="#004488">"Input: \"</font><font color="#004488">" + args[0] + "</font>\<font color="#004488">""</font>); <font color="#0000ff">for</font>(<font color="#0000ff">int</font> i = 1; i < args.length; i++) { System.out.println(<font color="#004488">"Regular expression: \"</font><font color="#004488">" + args[i] + "</font>\<font color="#004488">""</font>); Pattern p = Pattern.compile(args[i]); Matcher m = p.matcher(args[0]); <font color="#0000ff">while</font>(m.find()) { System.out.println(<font color="#004488">"Match \"</font>" + m.group() +<font color="#004488">"\"</font> at positions " +m.start() + <font color="#004488">"-"</font> + (m.end() - 1)); } } } } <font color="#009900">///:~</font></pre> </td> </tr> </tbody> </table> <p>紼嬪簭榪愯鐨勪竴涓粨鏋滐細</p> <p> <br />C:\java>java TestRegularExpression abccabcabc abc+ (abc)<br />Input: "abccabcabc"<br />Regular expression: "abc+"<br />Match "abcc" at positions 0-3<br />Match "abc" at positions 4-6<br />Match "abc" at positions 7-9<br />Regular expression: "(abc)"<br />Match "abc" at positions 0-2<br />Match "abc" at positions 4-6<br />Match "abc" at positions 7-9</p> <p>聽聽聽聽聽聽<span id="ztpbnfl" class="original_words">Java</span>鐨勬鍒欒〃杈懼紡鏄敱<span id="zlxxdbj" class="original_words">java.util.regex</span>鐨?span class="original_words">Pattern</span>鍜?span class="original_words">Matcher</span>綾誨疄鐜扮殑銆?span class="original_words">Pattern</span>瀵硅薄琛ㄧず緇忕紪璇戠殑姝e垯琛ㄨ揪寮忋傞潤鎬佺殑<span id="ldzlntd" class="original_words">compile( )</span>鏂規硶璐熻矗灝嗚〃紺烘鍒欒〃杈懼紡鐨勫瓧絎︿覆緙栬瘧鎴?span class="original_words">Pattern</span>瀵硅薄銆傛濡備笂榪頒緥紼嬫墍紺虹殑錛屽彧瑕佺粰<span id="nhjvzxn" class="original_words">Pattern</span>鐨?span class="original_words">matcher( )</span>鏂規硶閫佷竴涓瓧絎︿覆灝辮兘鑾峰彇涓涓?span class="original_words">Matcher</span>瀵硅薄銆傛澶栵紝<span id="dxjdzxp" class="original_words">Pattern</span>榪樻湁涓涓兘蹇熷垽鏂兘鍚﹀湪<span id="llpjffj" class="original_words">input</span>閲岄潰鎵懼埌<span id="hjdftbt" class="original_words">regex</span>鐨勬柟娉曪細</p> <blockquote> <pre> <font color="#0000ff">static</font> <font color="#0000ff">boolean</font> matches(聽regex, 聽input)</pre> </blockquote> <p>浠ュ強鑳借繑鍥?span class="original_words">String</span>鏁扮粍鐨?span class="original_words">split( )</span>鏂規硶錛屽畠鑳界敤<span id="lpzlpfx" class="original_words">regex</span>鎶婂瓧絎︿覆鍒嗗壊寮鏉ャ?/p> <p>鍙緇?span class="original_words">Pattern.matcher( )</span>鏂規硶浼犱竴涓瓧絎︿覆灝辮兘鑾峰緱<span id="nhlhltt" class="original_words">Matcher</span>瀵硅薄浜嗐傛帴涓嬫潵灝辮兘鐢?span class="original_words">Matcher</span>鐨勬柟娉曟潵鏌ヨ鍖歸厤鐨勭粨鏋滀簡銆?/p> <blockquote> <pre> <font color="#0000ff">boolean</font> matches() <font color="#0000ff">boolean</font> lookingAt() <font color="#0000ff">boolean</font> find() <font color="#0000ff">boolean</font> find(<font color="#0000ff">int</font> start)</pre> </blockquote> <p> <span id="dxrdhzp" class="original_words">matches( )</span>鐨勫墠鎻愭槸<span id="bnhtnvn" class="original_words">Pattern</span>鍖歸厤鏁翠釜瀛楃涓詫紝鑰?span class="original_words">lookingAt( )</span>鐨勬剰鎬濇槸<span id="nxtfttr" class="original_words">Pattern</span>鍖歸厤瀛楃涓茬殑寮澶淬?</p> <h4 id="header60">find( )</h4> <p> <span id="fpzdhxn" class="original_words">Matcher.find( )</span>鐨勫姛鑳芥槸鍙戠幇<span id="tdpbpxx" class="original_words">CharSequence</span>閲岀殑錛屼笌pattern鐩稿尮閰嶇殑澶氫釜瀛楃搴忓垪銆備緥濡傦細</p> <table class="sourcecode"> <tbody> <tr> <td width="648"> <pre> <font color="#009900">//: c12:FindDemo.java</font> <font color="#0000ff">import</font> java.util.regex.*; <font color="#0000ff">import</font> java.util.*; <font color="#0000ff">public</font><font color="#0000ff">class</font> FindDemo { <font color="#0000ff">public</font><font color="#0000ff">static</font><font color="#0000ff">void</font> main(String[] args) { Matcher m = Pattern.compile(<font color="#004488">"\\w+"</font>).matcher(<font color="#004488">"Evening is full of the linnet's wings"</font>); <font color="#0000ff">while</font>(m.find()) System.out.println(m.group()); <font color="#0000ff">int</font> i = 0; <font color="#0000ff">while</font>(m.find(i)) { System.out.print(m.group() + <font color="#004488">" "</font>); i++; } } } <font color="#009900">///:~</font></pre> </td> </tr> </tbody> </table> <p>"<span id="nfjxhhx" class="original_words">\\w+</span>"鐨勬剰鎬濇槸"涓涓垨澶氫釜鍗曡瘝瀛楃"錛屽洜姝ゅ畠浼氬皢瀛楃涓茬洿鎺ュ垎瑙f垚鍗曡瘝銆?span class="original_words">find( )</span>鍍忎竴涓凱浠e櫒錛屼粠澶村埌灝炬壂鎻忎竴閬嶅瓧絎︿覆銆傜浜屼釜<span id="zbvzvdt" class="original_words">find( )</span>鏄甫<span id="lhbnrzz" class="original_words">int</span>鍙傛暟鐨勶紝姝e浣犳墍鐪嬪埌鐨勶紝瀹冧細鍛婅瘔鏂規硶浠庡摢閲屽紑濮嬫壘鈥斺斿嵆浠庡弬鏁頒綅緗紑濮嬫煡鎵俱?/p> <p>榪愯緇撴灉錛?/p> <p> <br />C:\java>java FindDemo<br />Evening<br />is<br />full<br />of<br />the<br />linnet<br />s<br />wings<br />Evening vening ening ning ing ng g is is s full full ull ll l of of f the the he<br />e linnet linnet innet nnet net et t s s wings wings ings ngs gs s<br /></p> <h4 id="header61">Groups</h4> <p>Group鏄寚閲岀敤鎷彿鎷搗鏉ョ殑錛岃兘琚悗闈㈢殑琛ㄨ揪寮忚皟鐢ㄧ殑姝e垯琛ㄨ揪寮忋侴roup 0 琛ㄧず鏁翠釜琛ㄨ揪寮忥紝group 1琛ㄧず絎竴涓鎷搗鏉ョ殑group錛屼互姝ょ被鎺ㄣ傛墍浠ワ紱</p> <blockquote> <pre>A(B(C))D</pre> </blockquote> <p>閲岄潰鏈変笁涓猤roup錛歡roup 0鏄?span class="original_words">ABCD</span>錛?group 1鏄?span class="original_words">BC</span>錛実roup 2鏄?span class="original_words">C</span>銆?/p> <p>浣犲彲浠ョ敤涓嬭堪<span id="jtxrndd" class="original_words">Matcher</span>鏂規硶鏉ヤ嬌鐢╣roup錛?/p> <p> <span id="rjfhvll" class="original_words">public int groupCount( )</span>聽聽聽聽聽聽榪斿洖matcher瀵硅薄涓殑group鐨勬暟鐩備笉鍖呮嫭group0銆?/p> <p> <span id="rtxrdld" class="original_words">public String group( ) </span>聽聽聽聽聽聽聽聽聽榪斿洖涓婃鍖歸厤鎿嶄綔(姣旀柟璇?span class="original_words">find( )</span>)鐨刧roup 0(鏁翠釜鍖歸厤)</p> <p> <span id="jrvhltt" class="original_words">public String group(int i)</span>聽聽聽聽聽聽聽榪斿洖涓婃鍖歸厤鎿嶄綔鐨勬煇涓猤roup銆傚鏋滃尮閰嶆垚鍔燂紝浣嗘槸娌¤兘鎵懼埌group錛屽垯榪斿洖null銆?/p> <p> <span id="vfrfhpf" class="original_words">public int start(int group)</span>聽聽聽聽聽聽榪斿洖涓婃鍖歸厤鎵鎵懼埌鐨勶紝group鐨勫紑濮嬩綅緗?/p> <p> <span id="rzlzljr" class="original_words">public int end(int group)</span>聽聽聽聽聽聽聽榪斿洖涓婃鍖歸厤鎵鎵懼埌鐨勶紝group鐨勭粨鏉熶綅緗紝鏈鍚庝竴涓瓧絎︾殑涓嬫爣鍔犱竴銆?/p> <p>涓嬮潰鎴戜滑涓句竴浜沢roup鐨勪緥瀛愶細</p> <table class="sourcecode"> <tbody> <tr> <td width="689"> <pre> <font color="#009900">//: c12:Groups.java</font> <font color="#0000ff">import</font> java.util.regex.*; <font color="#0000ff">public</font><font color="#0000ff">class</font> Groups { <font color="#0000ff">static</font><font color="#0000ff">public</font><font color="#0000ff">final</font> String poem = <font color="#004488">"Twas brillig, and the slithy toves\n"</font> + <font color="#004488">"Did gyre and gimble in the wabe.\n"</font> + <font color="#004488">"All mimsy were the borogoves,\n"</font> + <font color="#004488">"And the mome raths outgrabe.\n\n"</font> + <font color="#004488">"Beware the Jabberwock, my son,\n"</font> + <font color="#004488">"The jaws that bite, the claws that catch.\n"</font> + <font color="#004488">"Beware the Jubjub bird, and shun\n"</font> + <font color="#004488">"The frumious Bandersnatch."</font>; <font color="#0000ff">public</font><font color="#0000ff">static</font><font color="#0000ff">void</font> main(String[] args) { Matcher m =Pattern.compile(<font color="#004488">"(?m)(\\S+)\\s+((\\S+)\\s+(\\S+))$"</font>).matcher(poem); <font color="#0000ff">while</font>(m.find()) { <font color="#0000ff">for</font>(<font color="#0000ff">int</font> j = 0; j <= m.groupCount(); j++) System.out.print(<font color="#004488">"["</font> + m.group(j) + <font color="#004488">"]"</font>); System.out.println(); } } } <font color="#009900">///:~</font></pre> </td> </tr> </tbody> </table> <p>紼嬪簭榪愯緇撴灉錛?/p> <p>C:\java>java Groups<br />[the slithy toves][the][slithy toves][slithy][toves]<br />[in the wabe.][in][the wabe.][the][wabe.]<br />[were the borogoves,][were][the borogoves,][the][borogoves,]<br />[mome raths outgrabe.][mome][raths outgrabe.][raths][outgrabe.]<br />[Jabberwock, my son,][Jabberwock,][my son,][my][son,]<br />[claws that catch.][claws][that catch.][that][catch.]<br />[bird, and shun][bird,][and shun][and][shun]<br />[The frumious Bandersnatch.][The][frumious Bandersnatch.][frumious][Bandersnatch.]</p> <p>C:\java></p> <p>榪欓璇楁槸<span id="zbnjvlr" class="original_words"><cite>Through the Looking Glass</cite></span>鐨勶紝Lewis Carroll鐨?Jabberwocky"鐨勭涓閮ㄥ垎銆傚彲浠ョ湅鍒拌繖涓鍒欒〃杈懼紡閲屾湁寰堝鐢ㄦ嫭鍙鋒嫭璧鋒潵鐨刧roup錛屽畠鏄敱浠繪剰澶氫釜榪炵畫鐨勯潪絀哄瓧絎?'<span id="jrxjvbl" class="original_words">\S+</span>')鍜屼換鎰忓涓繛緇殑絀烘牸瀛楃('<span id="pzdpbjj" class="original_words">\s+</span>')鎵緇勬垚鐨勶紝鍏舵渶緇堢洰鐨勬槸瑕佹崟鑾鋒瘡琛岀殑鏈鍚庝笁涓崟璇嶏紱'<span id="pjlxbbz" class="original_words">$</span>'琛ㄧず涓琛岀殑緇撳熬銆備絾鏄?<span id="rjvzjjr" class="original_words">$</span>'閫氬父琛ㄧず鏁翠釜瀛楃涓茬殑緇撳熬錛屾墍浠ヨ繖閲岃鏄庣‘鍦板憡璇夋鍒欒〃杈懼紡娉ㄦ剰鎹㈣絎︺傝繖涓鐐規槸鐢?<span id="btxbfvh" class="original_words">(?m)</span>'鏍囧織瀹屾垚鐨?妯″紡鏍囧織浼氳繃涓浼氳瑙?銆?/p> <h4 id="header62">start( )鍜宔nd( )</h4> <p>聽聽聽聽聽聽聽濡傛灉鍖歸厤鎴愬姛錛?span class="original_words">start( )</span>浼氳繑鍥炴嬈″尮閰嶇殑寮濮嬩綅緗紝<span id="pbdhjjz" class="original_words">end( )</span>浼氳繑鍥炴嬈″尮閰嶇殑緇撴潫浣嶇疆錛屽嵆鏈鍚庝竴涓瓧絎︾殑涓嬫爣鍔犱竴銆傚鏋滀箣鍓嶇殑鍖歸厤涓嶆垚鍔?鎴栬呮病鍖歸厤)錛岄偅涔堟棤璁烘槸璋冪敤<span id="npbzdlv" class="original_words">start( )</span>榪樻槸<span id="lthjdvl" class="original_words">end( )</span>錛岄兘浼氬紩鍙戜竴涓?span class="original_words">IllegalStateException</span>銆備笅闈㈣繖孌電▼搴忚繕婕旂ず浜?span class="original_words">matches( )</span>鍜?span class="original_words">lookingAt( )</span>錛?/p> <table class="sourcecode"> <tbody> <tr> <td width="690"> <pre> <font color="#009900">//: c12:StartEnd.java</font> <font color="#0000ff">import</font> java.util.regex.*; <font color="#0000ff">public</font><font color="#0000ff">class</font> StartEnd { <font color="#0000ff">public</font><font color="#0000ff">static</font><font color="#0000ff">void</font> main(String[] args) { String[] input = <font color="#0000ff">new</font> String[] { <font color="#004488">"Java has regular expressions in 1.4"</font>, <font color="#004488">"regular expressions now expressing in Java"</font>, <font color="#004488">"Java represses oracular expressions"</font> }; Pattern p1 = Pattern.compile(<font color="#004488">"re\\w*"</font>), p2 = Pattern.compile(<font color="#004488">"Java.*"</font>); <font color="#0000ff">for</font>(<font color="#0000ff">int</font> i = 0; i < input.length; i++) { System.out.println(<font color="#004488">"input "</font> + i + <font color="#004488">": "</font> + input[i]); Matcher m1 = p1.matcher(input[i]), m2 = p2.matcher(input[i]); <font color="#0000ff">while</font>(m1.find()) System.out.println(<font color="#004488">"m1.find() '"</font> + m1.group() + <font color="#004488">"' start = "</font>+ m1.start() + <font color="#004488">" end = "</font> + m1.end()); <font color="#0000ff">while</font>(m2.find()) System.out.println(<font color="#004488">"m2.find() '"</font> + m2.group() + <font color="#004488">"' start = "</font>+ m2.start() + <font color="#004488">" end = "</font> + m2.end()); <font color="#0000ff">if</font>(m1.lookingAt()) <font color="#009900">// No reset() necessary</font> System.out.println(<font color="#004488">"m1.lookingAt() start = "</font> + m1.start() + <font color="#004488">" end = "</font> + m1.end()); <font color="#0000ff">if</font>(m2.lookingAt()) System.out.println(<font color="#004488">"m2.lookingAt() start = "</font> + m2.start() + <font color="#004488">" end = "</font> + m2.end()); <font color="#0000ff">if</font>(m1.matches()) <font color="#009900">// No reset() necessary</font> System.out.println(<font color="#004488">"m1.matches() start = "</font> + m1.start() + <font color="#004488">" end = "</font> + m1.end()); <font color="#0000ff">if</font>(m2.matches()) System.out.println(<font color="#004488">"m2.matches() start = "</font> + m2.start() + <font color="#004488">" end = "</font> + m2.end()); } } } <font color="#009900">///:~</font></pre> </td> </tr> </tbody> </table> <p>榪愯緇撴灉錛?/p> <p> <br />C:\java>java StartEnd<br />input 0: Java has regular expressions in 1.4<br />m1.find() 'regular' start = 9 end = 16<br />m1.find() 'ressions' start = 20 end = 28<br />m2.find() 'Java has regular expressions in 1.4' start = 0 end = 35<br />m2.lookingAt() start = 0 end = 35<br />m2.matches() start = 0 end = 35</p> <p>input 1: regular expressions now expressing in Java<br />m1.find() 'regular' start = 0 end = 7<br />m1.find() 'ressions' start = 11 end = 19<br />m1.find() 'ressing' start = 27 end = 34<br />m2.find() 'Java' start = 38 end = 42<br />m1.lookingAt() start = 0 end = 7</p> <p>input 2: Java represses oracular expressions<br />m1.find() 'represses' start = 5 end = 14<br />m1.find() 'ressions' start = 27 end = 35<br />m2.find() 'Java represses oracular expressions' start = 0 end = 35<br />m2.lookingAt() start = 0 end = 35<br />m2.matches() start = 0 end = 35<br /></p> <p>C:\java></p> <p>娉ㄦ剰錛屽彧瑕佸瓧絎︿覆閲屾湁榪欎釜妯″紡錛?span class="original_words">find( )</span>灝辮兘鎶婂畠緇欐壘鍑烘潵錛屼絾鏄?span class="original_words">lookingAt( )</span>鍜?span class="original_words">matches( )</span>錛屽彧鏈夊湪瀛楃涓蹭笌姝e垯琛ㄨ揪寮忎竴寮濮嬪氨鐩稿尮閰嶇殑鎯呭喌涓嬫墠鑳借繑鍥?span class="original_words">true</span>銆?span class="original_words">matches( )</span>鎴愬姛鐨勫墠鎻愭槸姝e垯琛ㄨ揪寮忎笌瀛楃涓插畬鍏ㄥ尮閰嶏紝鑰?span class="original_words">lookingAt( )</span><a id="ref67" href="mk:@MSITStore:C:\Documents%20and%20Settings\wangkai\妗岄潰\TIJ3_cn.chm::/chap12/nocomment.html#comment67"><sup>[67]</sup></a>鎴愬姛鐨勫墠鎻愭槸錛屽瓧絎︿覆鐨勫紑濮嬮儴鍒嗕笌姝e垯琛ㄨ揪寮忕浉鍖歸厤銆?/p> <h4 id="header63">鍖歸厤鐨勬ā寮?Pattern flags)</h4> <p> <span id="nxjfbrx" class="original_words">compile( )</span>鏂規硶榪樻湁涓涓増鏈紝瀹冮渶瑕佷竴涓帶鍒舵鍒欒〃杈懼紡鐨勫尮閰嶈涓虹殑鍙傛暟錛?/p> <blockquote> <pre>Pattern Pattern.compile(String regex, <font color="#0000ff">int</font> flag)</pre> </blockquote> <span id="btxjvdd" class="original_words">flag</span>鐨勫彇鍊艱寖鍥村涓嬶細 <table class="narration" cellspacing="0" bordercolordark="#000000" cellpadding="2" bordercolorlight="#000000" border="2"><tbody><tr><th><span id="ndzdxnd" class="original_words">緙栬瘧鏍囧織</span></th><th><span id="lvhlffl" class="original_words">鏁堟灉</span></th></tr><tr><td><span id="xhbfhzz" class="original_words">Pattern.CANON_EQ</span></td><td>褰撲笖浠呭綋涓や釜瀛楃鐨?姝h鍒嗚В(canonical decomposition)"閮藉畬鍏ㄧ浉鍚岀殑鎯呭喌涓嬶紝鎵嶈瀹氬尮閰嶃傛瘮濡傜敤浜嗚繖涓爣蹇椾箣鍚庯紝琛ㄨ揪寮?a\u030A"浼氬尮閰??"銆傞粯璁ゆ儏鍐典笅錛屼笉鑰冭檻"瑙勮寖鐩哥瓑鎬?canonical equivalence)"銆?</td></tr><tr><td><span id="jrlplrb" class="original_words">Pattern.CASE_INSENSITIVE<br />(?i)</span></td><td>榛樿鎯呭喌涓嬶紝澶у皬鍐欎笉鏄庢劅鐨勫尮閰嶅彧閫傜敤浜嶶S-ASCII瀛楃闆嗐傝繖涓爣蹇楄兘璁╄〃杈懼紡蹇界暐澶у皬鍐欒繘琛屽尮閰嶃傝鎯沖Unicode瀛楃榪涜澶у皬涓嶆槑鎰熺殑鍖歸厤錛屽彧瑕佸皢<span id="pzvzldb" class="original_words">UNICODE_CASE</span>涓庤繖涓爣蹇楀悎璧鋒潵灝辮浜嗐?</td></tr><tr><td><span id="zbnzjbh" class="original_words">Pattern.COMMENTS<br />(?x)</span></td><td>鍦ㄨ繖縐嶆ā寮忎笅錛屽尮閰嶆椂浼氬拷鐣?姝e垯琛ㄨ揪寮忛噷鐨?絀烘牸瀛楃(璇戣呮敞錛氫笉鏄寚琛ㄨ揪寮忛噷鐨?\\s"錛岃屾槸鎸囪〃杈懼紡閲岀殑絀烘牸錛宼ab錛屽洖杞︿箣綾?銆傛敞閲婁粠#寮濮嬶紝涓鐩村埌榪欒緇撴潫銆傚彲浠ラ氳繃宓屽叆寮忕殑鏍囧織鏉ュ惎鐢║nix琛屾ā寮忋?</td></tr><tr><td><span id="tdprfvd" class="original_words">Pattern.DOTALL<br />(?s)</span></td><td>鍦ㄨ繖縐嶆ā寮忎笅錛岃〃杈懼紡'.'鍙互鍖歸厤浠繪剰瀛楃錛屽寘鎷〃紺轟竴琛岀殑緇撴潫絎︺傞粯璁ゆ儏鍐典笅錛岃〃杈懼紡'.'涓嶅尮閰嶈鐨勭粨鏉熺銆?</td></tr><tr><td><span id="ljnrdjj" class="original_words">Pattern.MULTILINE<br />(?m)</span></td><td>鍦ㄨ繖縐嶆ā寮忎笅錛?^'鍜?$'鍒嗗埆鍖歸厤涓琛岀殑寮濮嬪拰緇撴潫銆傛澶栵紝'^'浠嶇劧鍖歸厤瀛楃涓茬殑寮濮嬶紝'$'涔熷尮閰嶅瓧絎︿覆鐨勭粨鏉熴傞粯璁ゆ儏鍐典笅錛岃繖涓や釜琛ㄨ揪寮忎粎浠呭尮閰嶅瓧絎︿覆鐨勫紑濮嬪拰緇撴潫銆?</td></tr><tr><td><span id="bbvjvdt" class="original_words">Pattern.UNICODE_CASE<br />(?u)</span></td><td>鍦ㄨ繖涓ā寮忎笅錛屽鏋滀綘榪樺惎鐢ㄤ簡<span id="zhtxlhz" class="original_words">CASE_INSENSITIVE</span>鏍囧織錛岄偅涔堝畠浼氬Unicode瀛楃榪涜澶у皬鍐欎笉鏄庢劅鐨勫尮閰嶃傞粯璁ゆ儏鍐典笅錛屽ぇ灝忓啓涓嶆槑鎰熺殑鍖歸厤鍙傜敤浜嶶S-ASCII瀛楃闆嗐?</td></tr><tr><td><span id="btnrxnf" class="original_words">Pattern.UNIX_LINES<br />(?d)</span></td><td>鍦ㄨ繖涓ā寮忎笅錛屽彧鏈?\n'鎵嶈璁や綔涓琛岀殑涓錛屽茍涓斾笌'.'錛?^'錛屼互鍙?$'榪涜鍖歸厤銆?</td></tr></tbody></table><p>鍦ㄨ繖浜涙爣蹇楅噷闈紝<span id="tlpjndd" class="original_words">Pattern.CASE_INSENSITIVE</span>錛?span class="original_words">Pattern.MULTILINE</span>錛屼互鍙?span class="original_words">Pattern.COMMENTS</span>鏄渶鏈夌敤鐨?鍏朵腑<span id="vdxjxnv" class="original_words">Pattern.COMMENTS</span>榪樿兘甯垜浠妸鎬濊礬鐞嗘竻妤氾紝騫朵笖/鎴栬呭仛鏂囨。)銆傛敞鎰忥紝浣犲彲浠ョ敤鍦ㄨ〃杈懼紡閲屾彃璁板彿鐨勬柟寮忔潵鍚敤緇濆ぇ澶氭暟鐨勬ā寮忋傝繖浜涜鍙峰氨鍦ㄤ笂闈㈤偅寮犺〃鐨勫悇涓爣蹇楃殑涓嬮潰銆備綘甯屾湜妯″紡浠庡摢閲屽紑濮嬪惎鍔紝灝卞湪鍝噷鎻掕鍙楓?/p><p>鍙互鐢?OR" ('|')榪愮畻絎︽妸榪欎簺鏍囧織鍚堜嬌鐢細</p><table class="sourcecode"><tbody><tr><td width="613"><pre><font color="#009900">//: c12:ReFlags.java</font><font color="#0000ff">import</font> java.util.regex.*; <font color="#0000ff">public</font><font color="#0000ff">class</font> ReFlags { <font color="#0000ff">public</font><font color="#0000ff">static</font><font color="#0000ff">void</font> main(String[] args) { Pattern p = Pattern.compile(<font color="#004488">"^java"</font>, Pattern.CASE_INSENSITIVE | Pattern.MULTILINE); Matcher m = p.matcher( <font color="#004488">"java has regex\nJava has regex\n"</font> + <font color="#004488">"JAVA has pretty good regular expressions\n"</font> + <font color="#004488">"Regular expressions are in Java"</font>); <font color="#0000ff">while</font>(m.find()) System.out.println(m.group()); } } <font color="#009900">///:~</font></pre></td></tr></tbody></table><p>榪欐牱鍒涘緩鍑烘潵鐨勬鍒欒〃杈懼紡灝辮兘鍖歸厤浠?java"錛?Java"錛?JAVA"...寮澶寸殑瀛楃涓蹭簡銆傛澶栵紝濡傛灉瀛楃涓插垎濂藉嚑琛岋紝閭e畠榪樹細瀵規瘡涓琛屽仛鍖歸厤(鍖歸厤濮嬩簬瀛楃搴忓垪鐨勫紑濮嬶紝緇堜簬瀛楃搴忓垪褰撲腑鐨勮緇撴潫絎?銆傛敞鎰忥紝<span id="xhtnrvt" class="original_words">group( )</span>鏂規硶浠呰繑鍥炲尮閰嶇殑閮ㄥ垎銆?/p><h3 id="header64">split( )</h3><p>鎵璋撳垎鍓叉槸鎸囧皢浠ユ鍒欒〃杈懼紡涓虹晫錛屽皢瀛楃涓插垎鍓叉垚<span id="nvrvhph" class="original_words">String</span>鏁扮粍銆?/p><blockquote><pre>String[] split(CharSequence charseq) String[] split(CharSequence charseq, <font color="#0000ff">int</font> limit)</pre></blockquote><p>榪欐槸涓縐嶆棦蹇張鏂逛究鍦板皢鏂囨湰鏍規嵁涓浜涘父瑙佺殑杈圭晫鏍囧織鍒嗗壊寮鏉ョ殑鏂規硶銆?/p><table class="code"><tbody><tr><td width="670"><pre><font color="#009900">//: c12:SplitDemo.java</font><font color="#0000ff">import</font> java.util.regex.*; <font color="#0000ff">import</font> java.util.*; <font color="#0000ff">public</font><font color="#0000ff">class</font> SplitDemo { <font color="#0000ff">public</font><font color="#0000ff">static</font><font color="#0000ff">void</font> main(String[] args) { String input = <font color="#004488">"This!!unusual use!!of exclamation!!points"</font>; System.out.println(Arrays.asList( Pattern.compile(<font color="#004488">"!!"</font>).split(input))); <font color="#009900">// Only do the first three:</font> System.out.println(Arrays.asList( Pattern.compile(<font color="#004488">"!!"</font>).split(input, 3))); System.out.println(Arrays.asList( <font color="#004488">"Aha! String has a split() built in!"</font>.split(<font color="#004488">" "</font>))); } } <font color="#009900">///:~</font></pre></td></tr></tbody></table><p>榪愯緇撴灉錛?/p><p><br />C:\java>java SplitDemo<br />[This, unusual use, of exclamation, points]<br />[This, unusual use, of exclamation!!points]<br />[Aha!, String, has, a, split(), built, in!]</p><p>絎簩涓?span class="original_words">split( )</span>浼氶檺瀹氬垎鍓茬殑嬈℃暟銆?/p><p>姝e垯琛ㄨ揪寮忔槸濡傛閲嶈錛屼互鑷充簬鏈変簺鍔熻兘琚姞榪涗簡<span id="dtxbflv" class="original_words">String</span>綾伙紝鍏朵腑鍖呮嫭<span id="jrvzlzp" class="original_words">split( )</span>(宸茬粡鐪嬪埌浜?錛?span class="original_words">matches( )</span>錛?span class="original_words">replaceFirst( )</span>浠ュ強<span id="ndhlpvv" class="original_words">replaceAll( )</span>銆傝繖浜涙柟娉曠殑鍔熻兘鍚?span class="original_words">Pattern</span>鍜?span class="original_words">Matcher</span>鐨勭浉鍚屻?</p><h3 id="header65">鏇挎崲鎿嶄綔</h3><p>姝e垯琛ㄨ揪寮忓湪鏇挎崲鏂囨湰鏂歸潰鐗瑰埆鍦ㄨ銆備笅闈㈠氨鏄竴浜涙柟娉曪細</p><p><span id="jjftvdd" class="original_words">replaceFirst(String replacement)</span>灝嗗瓧絎︿覆閲岋紝絎竴涓笌妯″紡鐩稿尮閰嶇殑瀛愪覆鏇挎崲鎴?span class="original_words">replacement</span>銆?</p><p><span id="hpvhjrh" class="original_words">replaceAll(String replacement)</span>錛屽皢杈撳叆瀛楃涓查噷鎵鏈変笌妯″紡鐩稿尮閰嶇殑瀛愪覆鍏ㄩ儴鏇挎崲鎴?span class="original_words">replacement</span>銆?/p><p><span id="llvzdnd" class="original_words">appendReplacement(StringBuffer sbuf, String replacement)</span>瀵?span class="original_words">sbuf</span>榪涜閫愭鏇挎崲錛岃屼笉鏄儚<span id="pzdxjhp" class="original_words">replaceFirst( )</span>鎴?span class="original_words">replaceAll( )</span>閭f牱錛屽彧鏇挎崲絎竴涓垨鍏ㄩ儴瀛愪覆銆傝繖鏄釜闈炲父閲嶈鐨勬柟娉曪紝鍥犱負瀹冨彲浠ヨ皟鐢ㄦ柟娉曟潵鐢熸垚<span id="rjdrvtd" class="original_words">replacement</span>(<span id="nvzdpvn" class="original_words">replaceFirst( )</span>鍜?span class="original_words">replaceAll( )</span>鍙厑璁哥敤鍥哄畾鐨勫瓧絎︿覆鏉ュ厖褰?span class="original_words">replacement</span>)銆傛湁浜嗚繖涓柟娉曪紝浣犲氨鍙互緙栫▼鍖哄垎group錛屼粠鑰屽疄鐜版洿寮哄ぇ鐨勬浛鎹㈠姛鑳姐?/p><p>璋冪敤瀹?span class="original_words">appendReplacement( )</span>涔嬪悗錛屼負浜嗘妸鍓╀綑鐨勫瓧絎︿覆鎷瘋礉鍥炲幓錛屽繀欏昏皟鐢?span class="original_words">appendTail(StringBuffer sbuf, String replacement)</span>銆?</p><p>涓嬮潰鎴戜滑鏉ユ紨紺轟竴涓嬫庢牱浣跨敤榪欎簺鏇挎崲鏂規硶銆傝鏄庝竴涓嬶紝榪欐紼嬪簭鎵澶勭悊鐨勫瓧絎︿覆鏄畠鑷繁寮澶撮儴鍒嗙殑娉ㄩ噴錛屾槸鐢ㄦ鍒欒〃杈懼紡鎻愬彇鍑烘潵騫跺姞浠ュ鐞嗕箣鍚庡啀浼犵粰鏇挎崲鏂規硶鐨勩?/p><table class="sourcecode"><tbody><tr><td width="651"><pre><font color="#009900">//: c12:TheReplacements.java</font><font color="#0000ff">import</font> java.util.regex.*; <font color="#0000ff">import</font> java.io.*; <font color="#009900">/*! Here's a block of text to use as input to the regular expression matcher. Note that we'll first extract the block of text by looking for the special delimiters, then process the extracted block. !*/</font><font color="#0000ff">public</font><font color="#0000ff">class</font> TheReplacements { <font color="#0000ff">public</font><font color="#0000ff">static</font><font color="#0000ff">void</font> main(String[] args) <font color="#0000ff">throws</font> Exception { String s = TextFile.read(<font color="#004488">"TheReplacements.java"</font>); <font color="#009900">// Match the specially-commented block of text above:</font> Matcher mInput = Pattern.compile(<font color="#004488">"</font><font color="#004488">/\\*!(.*)!\\*</font><font color="#004488">/"</font>, Pattern.DOTALL).matcher(s); <font color="#0000ff">if</font>(mInput.find()) s = mInput.group(1); <font color="#009900">// Captured by parentheses</font><font color="#009900">// Replace two or more spaces with a single space:</font> s = s.replaceAll(<font color="#004488">" {2,}"</font>, <font color="#004488">" "</font>); <font color="#009900">// Replace one or more spaces at the beginning of each</font><font color="#009900">// line with no spaces. Must enable MULTILINE mode:</font> s = s.replaceAll(<font color="#004488">"(?m)^ +"</font>, <font color="#004488">""</font>); System.out.println(s); s = s.replaceFirst(<font color="#004488">"[aeiou]"</font>, <font color="#004488">"(VOWEL1)"</font>); StringBuffer sbuf = <font color="#0000ff">new</font> StringBuffer(); Pattern p = Pattern.compile(<font color="#004488">"[aeiou]"</font>); Matcher m = p.matcher(s); <font color="#009900">// Process the find information as you</font><font color="#009900">// perform the replacements:</font><font color="#0000ff">while</font>(m.find()) m.appendReplacement(sbuf, m.group().toUpperCase()); <font color="#009900">// Put in the remainder of the text:</font> m.appendTail(sbuf); System.out.println(sbuf); } } <font color="#009900">///:~</font></pre></td></tr></tbody></table><p>鎴戜滑鐢ㄥ墠闈粙緇嶇殑<span id="ddpbnll" class="original_words">TextFile.read( )</span>鏂規硶鏉ユ墦寮鍜岃鍙栨枃浠躲?span class="original_words">mInput</span>鐨勫姛鑳芥槸鍖歸厤'<span id="llvjdtr" class="original_words">/*!</span>' 鍜?'<span id="lnrdzpf" class="original_words">!*/</span>' 涔嬮棿鐨勬枃鏈?娉ㄦ剰涓涓嬪垎緇勭敤鐨勬嫭鍙?銆傛帴涓嬫潵錛屾垜浠皢鎵鏈変袱涓互涓婄殑榪炵畫絀烘牸鍏ㄩ兘鏇挎崲鎴愪竴涓紝騫朵笖灝嗗悇琛屽紑澶寸殑絀烘牸鍏ㄩ兘鍘繪帀(涓轟簡璁╄繖涓鍒欒〃杈懼紡鑳藉鎵鏈夌殑琛岋紝鑰屼笉浠呬粎鏄涓琛岃搗浣滅敤錛屽繀欏誨惎鐢ㄥ琛屾ā寮?銆傝繖涓や釜鎿嶄綔閮界敤浜?span class="original_words">String</span>鐨?span class="original_words">replaceAll( )</span>(榪欓噷鐢ㄥ畠鏇存柟渚?銆傛敞鎰忥紝鐢變簬姣忎釜鏇挎崲鍙仛涓嬈★紝鍥犳闄や簡棰勭紪璇?span class="original_words">Pattern</span>涔嬪錛岀▼搴忔病鏈夐澶栫殑寮閿銆?/p><p><span id="vnzdfdd" class="original_words">replaceFirst( )</span>鍙浛鎹㈢涓涓瓙涓層傛澶栵紝<span id="fpbfrrh" class="original_words">replaceFirst( )</span>鍜?span class="original_words">replaceAll( )</span>鍙兘鐢ㄥ父閲?literal)鏉ユ浛鎹紝鎵浠ュ鏋滀綘姣忔鏇挎崲鐨勬椂鍊欒繕瑕佽繘琛屼竴浜涙搷浣滅殑璇濓紝瀹冧滑鏄棤鑳戒負鍔涚殑銆傜鍒拌繖縐嶆儏鍐碉紝浣犲緱鐢?span class="original_words">appendReplacement( )</span>錛屽畠鑳借浣犲湪榪涜鏇挎崲鐨勬椂鍊欐兂鍐欏灝戜唬鐮佸氨鍐欏灝戙傚湪涓婇潰閭f紼嬪簭閲岋紝鍒涘緩<span id="hftnzjz" class="original_words">sbuf</span>鐨勮繃紼嬪氨鏄塯roup鍋氬鐞嗭紝涔熷氨鏄敤姝e垯琛ㄨ揪寮忔妸鍏冮煶瀛楁瘝鎵懼嚭鏉ワ紝鐒跺悗鎹㈡垚澶у啓鐨勮繃紼嬨傞氬父浣犲緱鍦ㄥ畬鎴愬叏閮ㄧ殑鏇挎崲涔嬪悗鎵嶈皟鐢?span class="original_words">appendTail( )</span>錛屼絾鏄鏋滆妯′豢<span id="nxjlxhb" class="original_words">replaceFirst( )</span>(鎴?replace n")鐨勬晥鏋滐紝浣犱篃鍙互鍙浛鎹竴嬈″氨璋冪敤<span id="dlxbdfv" class="original_words">appendTail( )</span>銆傚畠浼氭妸鍓╀笅鐨勪笢瑗垮叏閮芥斁榪?span class="original_words">sbuf</span>銆?/p><p>浣犺繕鍙互鍦?span class="original_words">appendReplacement( )</span>鐨?span class="original_words">replacement</span>鍙傛暟閲岀敤"$g"寮曠敤宸叉崟鑾風殑group錛屽叾涓?g' 琛ㄧずgroup鐨勫彿鐮併備笉榪囪繖鏄負涓浜涙瘮杈冪畝鍗曠殑鎿嶄綔鍑嗗鐨勶紝鍥犺屽叾鏁堟灉鏃犳硶涓庝笂榪扮▼搴忕浉姣斻?/p><h3 id="header66">reset( )</h3><p>姝ゅ錛岃繕鍙互鐢?span class="original_words">reset( )</span>鏂規硶緇欑幇鏈夌殑<span id="tvfbltt" class="original_words">Matcher</span>瀵硅薄閰嶄笂涓柊鐨?span class="original_words">CharSequence</span>銆?/p><table class="code"><tbody><tr><td width="676"><pre><font color="#009900">//: c12:Resetting.java</font><font color="#0000ff">import</font> java.util.regex.*; <font color="#0000ff">import</font> java.io.*; <font color="#0000ff">public</font><font color="#0000ff">class</font> Resetting { <font color="#0000ff">public</font><font color="#0000ff">static</font><font color="#0000ff">void</font> main(String[] args) <font color="#0000ff">throws</font> Exception { Matcher m = Pattern.compile(<font color="#004488">"[frb][aiu][gx]"</font>) .matcher(<font color="#004488">"fix the rug with bags"</font>); <font color="#0000ff">while</font>(m.find()) System.out.println(m.group()); m.reset(<font color="#004488">"fix the rig with rags"</font>); <font color="#0000ff">while</font>(m.find()) System.out.println(m.group()); } } <font color="#009900">///:~</font></pre></td></tr></tbody></table><p>紼嬪簭榪愯緇撴灉錛?/p><p><br />C:\java>java Resetting<br />fix<br />rug<br />bag<br />fix<br />rig<br />rag</p><p>濡傛灉涓嶇粰鍙傛暟錛?span class="original_words">reset( )</span>浼氭妸<span id="nnpbxxd" class="original_words">Matcher</span>璁懼埌褰撳墠瀛楃涓茬殑寮濮嬪銆?/p><h3 id="header67">姝e垯琛ㄨ揪寮忎笌Java I/O</h3><p>鍒扮洰鍓嶄負姝紝浣犵湅鍒扮殑閮芥槸鐢ㄦ鍒欒〃杈懼紡澶勭悊闈欐佸瓧絎︿覆鐨勪緥瀛愩備笅闈㈡垜浠潵婕旂ず涓涓嬫庢牱鐢ㄦ鍒欒〃杈懼紡鎵弿鏂囦歡騫朵笖鎵懼嚭鍖歸厤鐨勫瓧絎︿覆銆傚彈Unix鐨刧rep鍚彂錛屾垜鍐欎簡涓?span class="original_words">JGrep.java</span>錛屽畠闇瑕佷袱涓弬鏁幫細鏂囦歡鍚嶏紝浠ュ強鍖歸厤瀛楃涓茬敤鐨勬鍒欒〃杈懼紡銆傚畠浼氭妸鍖歸厤榪欎釜姝e垯琛ㄨ揪寮忛偅閮ㄥ垎鍐呭鍙婂叾鎵灞炶鐨勮鍙鋒墦鍗板嚭鏉ャ?/p><table class="code"><tbody><tr><td width="678"><pre><font color="#009900">//: c12:JGrep.java</font><font color="#009900">// A very simple version of the "grep" program.</font><font color="#009900">// {Args: JGrep.java "\\b[Ssct]\\w+"}</font><font color="#0000ff">import</font> java.io.*; <font color="#0000ff">import</font> java.util.regex.*; <font color="#0000ff">import</font> java.util.*; <font color="#0000ff">import</font> com.bruceeckel.util.*; <font color="#0000ff">public</font><font color="#0000ff">class</font> JGrep { <font color="#0000ff">public</font><font color="#0000ff">static</font><font color="#0000ff">void</font> main(String[] args) <font color="#0000ff">throws</font> Exception { <font color="#0000ff">if</font>(args.length < 2) { System.out.println(<font color="#004488">"Usage: java JGrep file regex"</font>); System.exit(0); } Pattern p = Pattern.compile(args[1]); <font color="#009900">// Iterate through the lines of the input file:</font> ListIterator it = <font color="#0000ff">new</font> TextFile(args[0]).listIterator(); <font color="#0000ff">while</font>(it.hasNext()) { Matcher m = p.matcher((String)it.next()); <font color="#0000ff">while</font>(m.find()) System.out.println(it.nextIndex() + <font color="#004488">": "</font> + m.group() + <font color="#004488">": "</font> + m.start()); } } } <font color="#009900">///:~</font></pre></td></tr></tbody></table><p>鏂囦歡鏄敤<span id="xthlpfv" class="original_words">TextFile</span>鎵撳紑鐨?鏈珷鐨勫墠鍗婇儴鍒嗚鐨?銆傜敱浜?span class="original_words">TextFile</span>浼氭妸鏂囦歡鐨勫悇琛屾斁鍦?span class="original_words">ArrayList</span>閲岄潰錛岃屾垜浠張鎻愬彇浜嗕竴涓?span class="original_words">ListIterator</span>錛屽洜姝ゆ垜浠彲浠ュ湪鏂囦歡鐨勫悇琛屽綋涓嚜鐢辯Щ鍔?鏃㈣兘鍚戝墠涔熷彲浠ュ悜鍚?銆?</p><p>姣忚閮戒細鏈変竴涓?span class="original_words">Matcher</span>錛岀劧鍚庣敤<span id="jrlxtbr" class="original_words">find( )</span>鎵弿銆傛敞鎰忥紝鎴戜滑鐢?span class="original_words">ListIterator.nextIndex( )</span>璺熻釜琛屽彿銆?</p><p>嫻嬭瘯鍙傛暟鏄?span class="original_words">JGrep.java</span>鍜屼互<span id="zjvxtbr" class="original_words">[Ssct]</span>寮澶寸殑鍗曡瘝銆?/p><h3 id="header68">榪橀渶瑕丼tringTokenizer鍚?</h3><p>鐪嬪埌姝e垯琛ㄨ揪寮忚兘鎻愪緵榪欎箞寮哄ぇ鐨勫姛鑳斤紝浣犲彲鑳戒細鎬鐤戯紝鏄笉鏄繕闇瑕佸師鍏堢殑<span id="rjvhjtr" class="original_words">StringTokenizer</span>銆侸DK 1.4浠ュ墠錛岃鎯沖垎鍓插瓧絎︿覆錛屽彧鏈夌敤<span id="xptpbzh" class="original_words">StringTokenizer</span>銆備絾鐜板湪錛屾湁浜嗘鍒欒〃杈懼紡涔嬪悗錛屽畠灝辮兘鍋氬緱鏇村共鍑鍒╃儲浜嗐?/p><table class="sourcecode"><tbody><tr><td width="611"><pre><font color="#009900">//: c12:ReplacingStringTokenizer.java</font><font color="#0000ff">import</font> java.util.regex.*; <font color="#0000ff">import</font> java.util.*; <font color="#0000ff">public</font><font color="#0000ff">class</font> ReplacingStringTokenizer { <font color="#0000ff">public</font><font color="#0000ff">static</font><font color="#0000ff">void</font> main(String[] args) { String input = <font color="#004488">"But I'm not dead yet! I feel happy!"</font>; StringTokenizer stoke = <font color="#0000ff">new</font> StringTokenizer(input); <font color="#0000ff">while</font>(stoke.hasMoreElements()) System.out.println(stoke.nextToken()); System.out.println(Arrays.asList(input.split(<font color="#004488">" "</font>))); } } <font color="#009900">///:~</font></pre></td></tr></tbody></table><p>榪愯緇撴灉錛?/p><p><br />C:\java>java ReplacingStringTokenizer<br />But<br />I'm<br />not<br />dead<br />yet!<br />I<br />feel<br />happy!<br />[But, I'm, not, dead, yet!, I, feel, happy!]</p><p>鏈変簡姝e垯琛ㄨ揪寮忥紝浣犲氨鑳界敤鏇村鏉傜殑妯″紡灝嗗瓧絎︿覆鍒嗗壊寮鏉モ斺旇鏄氦緇?span class="original_words">StringTokenizer</span>鐨勮瘽錛屼簨鎯呬細楹葷儲寰楀銆傛垜鍙互寰堟湁鎶婃彙鍦拌錛屾鍒欒〃杈懼紡鍙互鍙栦唬<span id="hjdzjrb" class="original_words">StringTokenizer</span>銆?</p><p>瑕佹兂榪涗竴姝ュ涔犳鍒欒〃杈懼紡錛屽緩璁綘鐪?cite><span id="ltptnnp" class="original_words">Mastering Regular Expression, 2nd Edition</span></cite>錛屼綔鑰匤effrey E. F. Friedl (O'Reilly, 2002)銆?/p><h2 id="header69">聽</h2></td> </tr> <tr> <td class="ArticleTeitle" valign="top" height="25"> <p align="right"> <font size="4"> </font> <font color="#333333">鏉ユ簮</font> <font color="#333333">錛?緗戜笂</font> </p> </td> </tr> </tbody> </table> <img src ="http://www.tkk7.com/JRobot/aggbug/69361.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/JRobot/" target="_blank">JRobot</a> 2006-09-13 13:37 <a href="http://www.tkk7.com/JRobot/articles/69361.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>感谢您访问我们的网站,您可能还对以下资源感兴趣:</p> <a href="http://www.tkk7.com/" title="亚洲av成人片在线观看">亚洲av成人片在线观看</a> <div class="friend-links"> </div> </div> </footer> 主站蜘蛛池模板: <a href="http://8xcb.com" target="_blank">亚洲性线免费观看视频成熟</a>| <a href="http://k4h3.com" target="_blank">亚洲第一中文字幕</a>| <a href="http://hztkw.com" target="_blank">亚洲а∨天堂久久精品9966</a>| <a href="http://31xyz.com" target="_blank">猫咪免费人成网站在线观看</a>| <a href="http://by6174.com" target="_blank">亚洲精品视频在线观看免费</a>| <a href="http://cuitccol.com" target="_blank">青青操免费在线视频</a>| <a href="http://zanyoo.com" target="_blank">亚洲精品乱码久久久久久按摩</a>| <a href="http://010youhua.com" target="_blank">成人免费视频一区二区</a>| <a href="http://010youhua.com" target="_blank">亚洲精品无码专区久久同性男</a>| <a href="http://dqzlxgg.com" target="_blank">免费看一级一级人妻片</a>| <a href="http://lfpfjc.com" target="_blank">国产成人高清亚洲</a>| <a href="http://codecampo.com" target="_blank">人妻免费一区二区三区最新</a>| <a href="http://jipiao020.com" target="_blank">亚洲不卡av不卡一区二区</a>| <a href="http://pengkaimjg.com" target="_blank">国产成人AV免费观看</a>| <a href="http://sdshfengji.com" target="_blank">亚洲AV日韩AV永久无码久久</a>| <a href="http://7788xxx.com" target="_blank">国产麻豆成人传媒免费观看</a>| <a href="http://av56cc.com" target="_blank">亚洲AV无码乱码在线观看裸奔 </a>| <a href="http://xiaochidaquan.com" target="_blank">黄页网站在线免费观看</a>| <a href="http://bbscqz.com" target="_blank">国产一级淫片免费播放电影</a>| <a href="http://miya863.com" target="_blank">人妻无码中文字幕免费视频蜜桃</a>| <a href="http://www62hth.com" target="_blank">国产性爱在线观看亚洲黄色一级片</a>| <a href="http://97aimeili.com" target="_blank">h视频在线免费观看</a>| <a href="http://97aimeili.com" target="_blank">亚洲AV第一页国产精品</a>| <a href="http://7uj3.com" target="_blank">91在线品视觉盛宴免费</a>| <a href="http://xianfeng-motor.com" target="_blank">亚洲色大成网站www</a>| <a href="http://nmgqsyg.com" target="_blank">免费jjzz在线播放国产</a>| <a href="http://scycho.com" target="_blank">成人毛片100免费观看</a>| <a href="http://helloyp.com" target="_blank">亚洲国产女人aaa毛片在线</a>| <a href="http://gjwlgzs.com" target="_blank">久九九精品免费视频</a>| <a href="http://78avai.com" target="_blank">免费亚洲视频在线观看</a>| <a href="http://8xjr.com" target="_blank">亚洲第一AAAAA片</a>| <a href="http://ding001.com" target="_blank">2021国产精品成人免费视频</a>| <a href="http://532342.com" target="_blank">亚洲av无码成人影院一区</a>| <a href="http://abbobo.com" target="_blank">亚洲精品国自产拍在线观看</a>| <a href="http://326h.com" target="_blank">99国产精品免费观看视频</a>| <a href="http://huafagz.com" target="_blank">成人亚洲国产va天堂</a>| <a href="http://shunfk.com" target="_blank">亚洲中文字幕视频国产</a>| <a href="http://yjjinfeng.com" target="_blank">在线观看永久免费</a>| <a href="http://123470c.com" target="_blank">羞羞漫画登录页面免费</a>| <a href="http://anyliz.com" target="_blank">亚洲国产精品一区</a>| <a href="http://www64427.com" target="_blank">国产猛烈高潮尖叫视频免费</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>