??xml version="1.0" encoding="utf-8" standalone="yes"?>国产视频久久久久久久,日本一区影院,久久精品男人天堂http://www.aygfsteel.com/yydy1983/zh-cnWed, 18 Jun 2025 00:12:54 GMTWed, 18 Jun 2025 00:12:54 GMT60[JS]jQuery中attr和propҎ的区?/title><link>http://www.aygfsteel.com/yydy1983/archive/2015/01/21/422322.html</link><dc:creator>♂游泳的?/dc:creator><author>♂游泳的?/author><pubDate>Wed, 21 Jan 2015 06:33:00 GMT</pubDate><guid>http://www.aygfsteel.com/yydy1983/archive/2015/01/21/422322.html</guid><wfw:comment>http://www.aygfsteel.com/yydy1983/comments/422322.html</wfw:comment><comments>http://www.aygfsteel.com/yydy1983/archive/2015/01/21/422322.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.aygfsteel.com/yydy1983/comments/commentRss/422322.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/yydy1983/services/trackbacks/422322.html</trackback:ping><description><![CDATA[     摘要: 相比attrQprop?.6.1才新出来的,两者从中文意思理解,都是获取/讄属性的ҎQattributes和propertiesQ?<br><a >jQuery教程(29)-jQuery插g开发之为插件方法指定参?/a> <br><a >jQuery教程(28)-jQuery插g开发之使用插g</a> <br><a >jQuery教程(27)-jQueryajax操作之修攚w认选项</a> <br><a >jQuery教程(26)-ajax操作之用JSONP加蝲q程数据</a>  <a href='http://www.aygfsteel.com/yydy1983/archive/2015/01/21/422322.html'>阅读全文</a><img src ="http://www.aygfsteel.com/yydy1983/aggbug/422322.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/yydy1983/" target="_blank">♂游泳的?/a> 2015-01-21 14:33 <a href="http://www.aygfsteel.com/yydy1983/archive/2015/01/21/422322.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Android官方技术文翻译—?Eclilpse目q移http://www.aygfsteel.com/yydy1983/archive/2015/01/14/422223.html♂游泳的?/dc:creator>♂游泳的?/author>Wed, 14 Jan 2015 05:31:00 GMThttp://www.aygfsteel.com/yydy1983/archive/2015/01/14/422223.htmlhttp://www.aygfsteel.com/yydy1983/comments/422223.htmlhttp://www.aygfsteel.com/yydy1983/archive/2015/01/14/422223.html#Feedback0http://www.aygfsteel.com/yydy1983/comments/commentRss/422223.htmlhttp://www.aygfsteel.com/yydy1983/services/trackbacks/422223.htmlandroid学习W记Q?1Qandroid选项菜单和子菜单QSubMenu )
android学习W记Q?0QNotification的功能与用法
android学习W记Q?2Qandroid使用监听器来监听菜单事g
android学习W记Q?3Qandroid创徏单选菜单和复选菜?/a>  阅读全文

]]>
Java获取当前路径和读取文?/title><link>http://www.aygfsteel.com/yydy1983/archive/2015/01/06/422074.html</link><dc:creator>♂游泳的?/dc:creator><author>♂游泳的?/author><pubDate>Tue, 06 Jan 2015 05:39:00 GMT</pubDate><guid>http://www.aygfsteel.com/yydy1983/archive/2015/01/06/422074.html</guid><wfw:comment>http://www.aygfsteel.com/yydy1983/comments/422074.html</wfw:comment><comments>http://www.aygfsteel.com/yydy1983/archive/2015/01/06/422074.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/yydy1983/comments/commentRss/422074.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/yydy1983/services/trackbacks/422074.html</trackback:ping><description><![CDATA[     摘要: 1、利用System.getProperty()函数获取当前路径Q?<br>System.out.println(System.getProperty("user.dir"));//user.dir指定了当前的路径 <br><a >android开?/a>  <a href='http://www.aygfsteel.com/yydy1983/archive/2015/01/06/422074.html'>阅读全文</a><img src ="http://www.aygfsteel.com/yydy1983/aggbug/422074.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/yydy1983/" target="_blank">♂游泳的?/a> 2015-01-06 13:39 <a href="http://www.aygfsteel.com/yydy1983/archive/2015/01/06/422074.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Android Context 上下?你必ȝ道的一?/title><link>http://www.aygfsteel.com/yydy1983/archive/2015/01/05/422056.html</link><dc:creator>♂游泳的?/dc:creator><author>♂游泳的?/author><pubDate>Mon, 05 Jan 2015 05:40:00 GMT</pubDate><guid>http://www.aygfsteel.com/yydy1983/archive/2015/01/05/422056.html</guid><wfw:comment>http://www.aygfsteel.com/yydy1983/comments/422056.html</wfw:comment><comments>http://www.aygfsteel.com/yydy1983/archive/2015/01/05/422056.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/yydy1983/comments/commentRss/422056.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/yydy1983/services/trackbacks/422056.html</trackback:ping><description><![CDATA[     摘要: 其实一直想写一关于Context的文章,但是又怕技术不如而误人子弟,于是参考了些资料,今天准备整理下写出来Q如有不Ih出,参考资料会在醒目地Ҏ明?<br><a >Android KSOAP2调用.net webservice</a> <br><a >jQuery教程(8)-DOM树操作之使用反向插入Ҏ</a> <br><a >android学习W记Q?4Q用AlertDialog创徏单对话框</a> <br><a >android学习W记Q?3Q画廊视图(Gallery)的功能和用法</a> <br><a >android na  <a href='http://www.aygfsteel.com/yydy1983/archive/2015/01/05/422056.html'>阅读全文</a><img src ="http://www.aygfsteel.com/yydy1983/aggbug/422056.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/yydy1983/" target="_blank">♂游泳的?/a> 2015-01-05 13:40 <a href="http://www.aygfsteel.com/yydy1983/archive/2015/01/05/422056.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>javascript技术难点(三)之this、new、apply和call详解http://www.aygfsteel.com/yydy1983/archive/2014/12/09/421229.html♂游泳的?/dc:creator>♂游泳的?/author>Tue, 09 Dec 2014 09:54:00 GMThttp://www.aygfsteel.com/yydy1983/archive/2014/12/09/421229.htmlhttp://www.aygfsteel.com/yydy1983/comments/421229.htmlhttp://www.aygfsteel.com/yydy1983/archive/2014/12/09/421229.html#Feedback1http://www.aygfsteel.com/yydy1983/comments/commentRss/421229.htmlhttp://www.aygfsteel.com/yydy1983/services/trackbacks/421229.html  讲解this指针的原理是个很复杂的问题,如果我们从javascript里this的实现机制来说明thisQ很多朋友可能会来糊?
by:萌萌的it?/a>
更多关于
android开?/a> 的文?nbsp; 阅读全文

]]>
正则表达式和grep命o的用?/title><link>http://www.aygfsteel.com/yydy1983/archive/2014/11/27/420790.html</link><dc:creator>♂游泳的?/dc:creator><author>♂游泳的?/author><pubDate>Thu, 27 Nov 2014 09:43:00 GMT</pubDate><guid>http://www.aygfsteel.com/yydy1983/archive/2014/11/27/420790.html</guid><wfw:comment>http://www.aygfsteel.com/yydy1983/comments/420790.html</wfw:comment><comments>http://www.aygfsteel.com/yydy1983/archive/2014/11/27/420790.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.aygfsteel.com/yydy1983/comments/commentRss/420790.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/yydy1983/services/trackbacks/420790.html</trackback:ping><description><![CDATA[     摘要: 正则表达式(或称Regular ExpressionQ简UREQ就是由普通字W(例如字符 a ?zQ以及特D字W(UCؓ元字W)l成的文字模式?br> <br><a >萌萌的it?/a>   <a href='http://www.aygfsteel.com/yydy1983/archive/2014/11/27/420790.html'>阅读全文</a><img src ="http://www.aygfsteel.com/yydy1983/aggbug/420790.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/yydy1983/" target="_blank">♂游泳的?/a> 2014-11-27 17:43 <a href="http://www.aygfsteel.com/yydy1983/archive/2014/11/27/420790.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>2.5 使用正则表达式进行替?/title><link>http://www.aygfsteel.com/yydy1983/articles/246997.html</link><dc:creator>♂游泳的?/dc:creator><author>♂游泳的?/author><pubDate>Wed, 17 Dec 2008 17:01:00 GMT</pubDate><guid>http://www.aygfsteel.com/yydy1983/articles/246997.html</guid><wfw:comment>http://www.aygfsteel.com/yydy1983/comments/246997.html</wfw:comment><comments>http://www.aygfsteel.com/yydy1983/articles/246997.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/yydy1983/comments/commentRss/246997.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/yydy1983/services/trackbacks/246997.html</trackback:ping><description><![CDATA[<p><strong>2.5  使用正则表达式进行替?/strong> <br /> <br /> 在上一节中Q介l了用于匚w一个String中的模式和用于从一个子模式l中索数据的正则表达式。用regexQ还可以用新的值替代匹配的模式。完成此操作的一U方法是使用MatchercȝreplaceAllҎQ它返回一个字W串Q将所有匹配的子串替换为给定的字符丌Ӏؓ了说明此ҎQ查找一个文件内出现的所有repetition单词q用单词duplication来替换它们: <table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="black" border="1"> <tbody> <tr> <td class="code" bgcolor="#e6e6e6"> <pre>String data = getStringData();<br /> Pattern repPattern = Pattern.compile("(<a href="file://s)(repetition)(%5B//s;//">\\s)(repetition)([\\s;\\</a>.,])");<br /> Matcher repMatcher = repPattern.matcher(data);<br /> String newData = repMatcher.replaceAll("$1duplication$3"); </pre> </td> </tr> </tbody> </table> <p>Z查找单词Q需要捕获它前后的空?或标点符?。需要注意的是,如果此单词出现在data字符串的开_那么上述的代码不会匹配它Q因为已假定它的前后存在I白W。除了单词repetition被替换外Q我们希望文本中的其他内容与原始文本保持一_包括单词周围的空白字W。这里的元W号($)昄不表C币。它表示对从regex模式中捕Ll?和组3的逆向引用Q包含最初匹配的I白或标点符受这P与它们对应的值将插入到替换文本中?/p> <p>Stringc?在JDK 1.4或更高的版本?有一个replaceAllҎQ其工作机制cM于Matcher中的replaceAllҎ。这使得它可以很方便地替换一个与模式匚w的子Ԍ<br /> </p> <table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="black" border="1"> <tbody> <tr> <td class="code" bgcolor="#e6e6e6"> <pre>String data = getStringData();<br /> String result =<br /> data.replaceAll("(<a href="file://s)(repetition)(%5B//s;//">\\s)(repetition)([\\s;\\</a>.,])", "$1duplication$3"); </pre> </td> </tr> </tbody> </table> <p>replaceAllҎq回一个新的字W串Q其中所有匹配的部分已被新值替换。但是,使用Matcher仍有很多优点Q因为相对于字符串它有更大的灉|性?/p> <p>可以使用Matcher的find循环用新gơ替换每个匹配的部分。这样你能够更好地控制替换q程。比如,可以在每ơ匹配的q程中应用其他逻辑Q甚xơ可以替换不同的倹{这qCStringBufferQStringBuffer用于保存更新的文本,q且一旦调用appendReplacementҎQMatcherp加更新后的文本到~存中。在处理每个匚wq执行替换后Q需要用appendTailҎ最后一ơ匹配后的剩余字W串攄在输出缓存中。图2-1说明了子串匹配和q两U方法之间的关系?br /> </p> <table class="ln" cellspacing="0" bordercolordark="#ffffff" align="center" bgcolor="#ddddd" bordercolorlight="#999999" border="1"> <tbody> <tr> <td bgcolor="#ffffff"><a target="_blank"><img class="fit-image" onmousewheel="javascript:return big(this)" style="zoom: 120%" height="179" alt="" src="http://new.51cto.com/files/uploadimg/20071108/134652727.gif" width="486" onload="javascript:if(this.width />498)this.style.width=498;" border=0></a><a target="_blank"></a></td> </tr> <tr> <td class="it" align="center" bgcolor="#dddddd">?-1  MatchercȝappendҎ </td> </tr> </tbody> </table> Matcher有一个相应的append指针。指针最初从零开始,随着每次调用appendReplacement向前Ud。这U设计是Z在一个find循环内用它。每ơ匹配后Q调用appendReplacementҎQMatcher指针所在的上一个位|到匚w之前指针所在的位置之间的内容,x更改的文本合q到StringBuffer中。然后,Matcher替换当前匚w的文本ƈ替换后的内Ҏ|在StringBuffer中。接下来QMatcherappend指针Ud到当前匹配结之后的W一个字W,然后重复此过E直C再生匹配。在扑ֈ所有匹配之后很可能剩下一个未匚w的部分。ؓ了将q部分文本添加到输出StringBuffer中,使用appendTailҎ?br /> 现在使用q些Ҏ前面的替换例子重写Z个@环。但是这一ơ对于每个匹配,用一个随机选择的同义词(repetition、duplication、copying、reiteration、recurrence或redundancy)来替代单词repetitionQ? <table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="black" border="1"> <tbody> <tr> <td class="code" bgcolor="#e6e6e6"> <pre>StringBuffer result = new StringBuffer();<br /> String[] wordChoices = new String[]<br /> {"repetition", "duplication", "copying",<br /> "reiteration", "recurrence", "redundancy"};<br /> Random rand = new Random();<br /> String data = getStringData();<br /> Pattern repPattern = Pattern.compile("(<a href="file://s)(repetition)(%5B//s;//">\\s)(repetition)([\\s;\\</a>.,])");<br /> Matcher repMatcher = repPattern.matcher(data);<br /> while (repMatcher.find()) {<br /> // pick a word at random<br /> int wordIndex = rand.nextInt(wordChoices.length);<br /> String replacement = "$1" + wordChoices[wordIndex] + "$3";<br /> repMatcher.appendReplacement(result, replacement);<br /> }<br /> repMatcher.appendTail(result);<br /> System.out.println(result); </pre> </td> </tr> </tbody> </table> <br /> 可以按需求改写find循环中的逻辑来对每个匚wq行所需的处理。此外,q可以用前面讨的Matcher的方法:group、start和end。可以用这些技术的l合有选择CҎ删除一个文件中每部分匹配的文本? <img src ="http://www.aygfsteel.com/yydy1983/aggbug/246997.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/yydy1983/" target="_blank">♂游泳的?/a> 2008-12-18 01:01 <a href="http://www.aygfsteel.com/yydy1983/articles/246997.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>2.4 使用Regex捕获l?/title><link>http://www.aygfsteel.com/yydy1983/articles/245894.html</link><dc:creator>♂游泳的?/dc:creator><author>♂游泳的?/author><pubDate>Fri, 12 Dec 2008 03:38:00 GMT</pubDate><guid>http://www.aygfsteel.com/yydy1983/articles/245894.html</guid><wfw:comment>http://www.aygfsteel.com/yydy1983/comments/245894.html</wfw:comment><comments>http://www.aygfsteel.com/yydy1983/articles/245894.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/yydy1983/comments/commentRss/245894.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/yydy1983/services/trackbacks/245894.html</trackback:ping><description><![CDATA[<p><strong>2.4  使用Regex捕获l?<br /> </strong> <br /> 在上一节中Q介l了如何使用正则表达式在一个文件中q行搜烦以便索它内部所有的URL。可以用Matchercȝfind、start和endҎ来检索匹配的URL字符丌Ӏ有时有必要q一步处理子串匹配的l果Q或是查N加的子模式。例如,Ҏ个特定区域的URL不进行处理。ؓ了实现此目的Q一U强制性的Ҏ是用另一个Pattern和Matcher对象Q代码如下:</p> <p> <table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="black" border="1"> <tbody> <tr> <td class="code" bgcolor="#e6e6e6"> <pre>// assume urlMatcher instance as in the previous example<br /> while (urlMatcher.find()) {<br /> int startIndex = urlMatcher.start();<br /> int endIndex = urlMatcher.end();<br /> String currentMatch = data.substring(startIndex, endIndex);<br /> // the brute force approach, using a new pattern!<br /> Pattern restricted = Pattern.compile(".*(abc|cbs|nbc)\\.com.*");<br /> Matcher restrictMatcher = restricted.matcher(currentMatch);<br /> if (!restrictMatcher.matches()) {<br /> System.out.println(currentMatch);<br /> }<br /> }<br /> </pre> </td> </tr> </tbody> </table> 在捕LURL中匹配域名ƈ不是一个非帔R效的Ҏ。由于已l用findҎ完成了提取URL的困隑ַ作,不应该仅仅ؓ了获得结果的一部分而编写另一个regexQƈ且也不必q样做。正则表辑ּ允许模式分解成子序列。用圆括号Q将以后要用到的模式部分括v来,q样Q我们就可以忽略其余部分单独dq些部分的倹{重写URL模式以域名可以与URL的其他部分相分离Q?/p> <p> <table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="black" border="1"> <tbody> <tr> <td class="code" bgcolor="#e6e6e6"> <pre>String urlPattern =<br /> "(http|https|ftp)://([a-zA-Z0-9-\\.]+)[/\\w\\.\\-\\+\\?%=&;:,#]*";</pre> </td> </tr> </tbody> </table> 当在模式中存在用括号括v来的l时Q可以分别检索每个组的匹配倹{从最左边的组开始编?Q然后依ơ对每对括号相对应的l进行编受在上面的模式中Q第一l是协议(如http)Q第二组是域名。ؓ了在匚w的字W串中访问组Q可以用Matcher的groupҎ。下面的代码CZ从每个URL中检索域名ƈ昄它们的|</p> <p> <table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="black" border="1"> <tbody> <tr> <td class="code" bgcolor="#e6e6e6"> <pre>String data = getStringData(); // load the document<br /> String urlString =<br /> "(http|https|ftp)://([a-zA-Z0-9-\\.]+)[/\\w\\.\\-\\+\\?%=&;:,#]*";<br /> Pattern urlPattern = Pattern.compile(urlString);<br /> Matcher urlMatcher = urlPattern.matcher(data);<br /> // print out the domain from each URL<br /> while (urlMatcher.find()) {<br /> String domain = urlMatcher.group(2); // 2nd group is the domain<br /> System.out.println(domain);<br /> }<br /> </pre> </td> </tr> </tbody> </table> </p> <p>保存每个匚w的组以便可以随后引用它们。在一个模式内引用一个以前的匚wl称为逆向引用(backreference)。ؓ了对W三个组q行逆向引用Q在模式中包括\3卛_。这会只匹配一个与以前的组相匹配的严格重复的数据。ؓ了说明此问题Q考虑一个在文本文g中常见的错误—?一个句子中意外地重复出现某个常用的单词Q如“the”?#8220;of”?/p> <p> <table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="black" border="1"> <tbody> <tr> <td class="code" bgcolor="#e6e6e6"> <pre>" The the water molecules are made of of hydrogen and oxygen."</pre> </td> </tr> </tbody> </table> </p> <p>下面~写一个模式来扑և文g中存在的q些问题。该模式捕L一个单词,后跟一些空白符Q而其后又跟着匚wW一个单词的重复模式Q?/p> <p> <table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="black" border="1"> <tbody> <tr> <td class="code" bgcolor="#e6e6e6"> <pre>String wordPattern = "<a href="file://s(of%7Cor%7Cthe%7Cto)//s+//1%5B//s//">\\s(of|or|the|to)\\s+\\1[\\s\\</a>.,;]";<br /> </pre> </td> </tr> </tbody> </table> 该模式匹配情况如下:一个空白字W、特D的单词列表中的一个单词、更多的I白、再ơ重复的相同的单?使用\1逆向引用)以及I白W或标点W号。这U匹配应不区分大写Q以便能够捕获到“The the”以及cM的变型。如以下的代码段所C,该模式不区分大小写,能在一个字W串中查N复出现的模式Q?/p> <p> <table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="black" border="1"> <tbody> <tr> <td class="code" bgcolor="#e6e6e6"> <pre>String data = getStringData();<br /> String patternStr = "<a href="file://s(of%7Cor%7Cthe%7Cto)//s+//1%5B//s//">\\s(of|or|the|to)\\s+\\1[\\s\\</a>.,;]";<br /> Pattern wordPattern =<br /> Pattern.compile(patternStr, Pattern.CASE_INSENSITIVE);<br /> Matcher wordMatcher = wordPattern.matcher(data);<br /> while (wordMatcher.find()) {<br /> int start = wordMatcher.start();<br /> String word = wordMatcher.group(1);<br /> // print the index location of the repeated word<br /> System.out.println("Repeated " + word + " starting at " + start);<br /> }<br /> </pre> </td> </tr> </tbody> </table> </p> <p>有一U简便和强大的匹配文件中文本的方法,该方法允怋用多个正则表辑ּ来处理文Ӟ本章后面?#8220;使用Scannerc进行语法分?#8221;一节将会讲解此Ҏ。若想了解用内|烦引进行更为复杂的文本搜烦的解x法,请参考第3章中“使用Luceneq行搜烦”一节的内容?/p> <img src ="http://www.aygfsteel.com/yydy1983/aggbug/245894.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/yydy1983/" target="_blank">♂游泳的?/a> 2008-12-12 11:38 <a href="http://www.aygfsteel.com/yydy1983/articles/245894.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>2.3 在一个String中查扑֭串模?/title><link>http://www.aygfsteel.com/yydy1983/articles/245145.html</link><dc:creator>♂游泳的?/dc:creator><author>♂游泳的?/author><pubDate>Tue, 09 Dec 2008 01:29:00 GMT</pubDate><guid>http://www.aygfsteel.com/yydy1983/articles/245145.html</guid><wfw:comment>http://www.aygfsteel.com/yydy1983/comments/245145.html</wfw:comment><comments>http://www.aygfsteel.com/yydy1983/articles/245145.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.aygfsteel.com/yydy1983/comments/commentRss/245145.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/yydy1983/services/trackbacks/245145.html</trackback:ping><description><![CDATA[<p><strong>2.3  在一个String中查扑֭串模?/strong> <br /> <br /> 本章前面?#8220;使用正则表达式来搜烦文本”一节说明了如何使用regex模式来比较一个String是否匚w(或部分匹?一个给定的模式。这里,匚w是从输入字符串的W一个字W开始的。在本节中,用regex模式在一个String中查扑֤个匹配倹{D例来_可以在一文档中搜烦查找嵌入在正文中的Q何URL。首先,需要创Z个匹配URL的模式字W串。下面给Z个能匚w大多数URL的模式: </p> <p> <table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="black" border="1"> <tbody> <tr> <td class="code" bgcolor="#e6e6e6"> <pre>String urlString = "(http|https|ftp)://[/\\w\\.\\-\\+\\?%=&;:,#]+";</pre> </td> </tr> </tbody> </table> </p> <p>此模式ƈ不能有效地描qURLQ因为它也匹配一些包含错误语法的URL字符Ԍ?a href="http://////////">http://////////</a>。在一些情况下它也会捕获额外的字符Q如可能紧跟在嵌入到正文中的URL之后的逗号或分受这些字W有时会出现在URL中,但是如果URL出现在正文中Q这些字W可能不希望URL的一部分而被捕获。但该模式相对简短ƈ且能够很好地用于搜烦文本文g中包含的URL。此模式表达式的各部分如下所C: </p> <p> <table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="black" border="1"> <tbody> <tr> <td class="code" bgcolor="#e6e6e6"> <pre>?nbsp; http、https或ftp <br /> ?nbsp; :// <br /> ?nbsp;/ 0-9 A-Z a-z _ . - + ? % = & ; : , #中的一个或多个字符 </pre> </td> </tr> </tbody> </table> 我们知道QMatcher可以一个模式应用到一个特D的输入字符丌Ӏؓ了用前面定义的urlString模式查找多个子串匚wQ必调用Matcher的findҎ。ؓ了在输入字符串内扑ֈ每一个出现的模式Q可以重复调用findҎ来查找下一个匹配。当没有更多的匹配时QfindҎq回false。ؓ了获取当前匹配的位置Q可以用start和endҎ来获得烦引g在输入文本中的范围内q行匚w。以下的代码显C数据内扑ֈ的所有URLQ?/p> <p> <table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="black" border="1"> <tbody> <tr> <td class="code" bgcolor="#e6e6e6"> <pre>String urlString = "(http|https|ftp)://[/\\w\\.\\-\\+\\?%=&;:,#]+";<br /> Pattern urlPattern = Pattern.compile(urlString);<br /> // get the data (somehow)<br /> String data = getStringData();<br /> // get a matcher for the data<br /> Matcher urlMatcher = urlPattern.matcher(data);<br /> // iterate through the matches<br /> while (urlMatcher.find()) {<br /> int startIndex = urlMatcher.start();   // index of start<br /> int endIndex = urlMatcher.end();        // index of end + 1<br /> // retrieve the matching substring<br /> String currentMatch = data.substring(startIndex, endIndex);<br /> System.out.println(currentMatch);<br /> }</pre> </td> </tr> </tbody> </table> </p> <p>此代码将不能匚w相对的URL(?images/picture.jpg)Q这些URL常常出现在HTML文g或省略前|http://的不完整的URL(如wickedcooljava.com)中。ؓ了知道何时应该将某字W串作ؓ相对URL来对待,E序必须理解HTML文g的结?使用regex也可完成此Q务,但是要更困难?。需要知道每个匹配的上下文,为此必须在理解其语法的基上分析文件。若想了解更多的信息Q请参考第3章?/p> <img src ="http://www.aygfsteel.com/yydy1983/aggbug/245145.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/yydy1983/" target="_blank">♂游泳的?/a> 2008-12-09 09:29 <a href="http://www.aygfsteel.com/yydy1983/articles/245145.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>2.2 使用String.splitҎhttp://www.aygfsteel.com/yydy1983/articles/244849.html♂游泳的?/dc:creator>♂游泳的?/author>Sun, 07 Dec 2008 04:07:00 GMThttp://www.aygfsteel.com/yydy1983/articles/244849.htmlhttp://www.aygfsteel.com/yydy1983/comments/244849.htmlhttp://www.aygfsteel.com/yydy1983/articles/244849.html#Feedback0http://www.aygfsteel.com/yydy1983/comments/commentRss/244849.htmlhttp://www.aygfsteel.com/yydy1983/services/trackbacks/244849.html2.2  使用String.splitҎ
 
开发h员有旉要用分隔符(如逗号、制表符或空?一个String分割成子丌Ӏ正如上一节中讨论的那PJava 1.4d了Patterncȝ来和常规表达式来执行文本比较。除了模式匹配外Q用常规表达式作为分隔符QPattern对象可以一个String分割成一个子串数l。例如,可以使用逗号作ؓ模式一行以逗号分隔的列表划分成一个字W串数组Q?/p>
String data = "Australia,Fiji,New Zealand,Papua New Guinea";
Pattern comma = Pattern.compile(",");
String[] countries = comma.split(data);

分割字符串更单的实现Ҏ是:使用StringcM的splitҎ。用此Ҏ重写以上代码。这一ơ将更改分隔W以包括逗号前后的所有空白,以它不成ؓ子串值的一部分Q?
String data = "Australia, Fiji, New Zealand , Papua New Guinea";
String[] countries = data.split("\\s*,\\s*");
正如前面介绍q的Pattern对象那样Q在q里同样可以采用相同的正则表辑ּ语法。因此用splitҎ的场合远不止逗号和空根{?/p>

]]>
վ֩ģ壺 Ԫı| | ͤ| ij| ػʵ| | μԴ| ̫| | ĩ| ԣ| ʻ| ͨ| | ˾| »Ȱ| | | Զ| ײ| | ԭ| ¡| ɽ| | | ̨| Ұ| ȷ| | | ͭ| | | | | ͷ| º| | ˾| ʡ|