精華區beta RegExp 關於我們 聯絡資訊
我有一個字串如下: <li>( ?url = "LAB221"^^xsd:string )</li> 我只要中間的 LAB221 的部份,所以我就用底下的正規,可是比對不出來 可以請大家幫忙看看嗎? 感謝大家 // compile pattern Pattern p = Pattern.compile("<li>( \?[\\w+] = \"([A-Za-z0-9]+)\".* )</li>"); // get matcher Matcher m = p.matcher("<li>( ?url = \"LAB221\"^^xsd:string )</li>"); // test if match if (m.matches()) { System.out.println(m.group(1)); } else { System.out.println("error"); } -- ******************************************************** * Appleboy Blog * * http://blog.Wu-Boy.com/ * * Appleboy Album * * http://pic.wu-boy.com * ******************************************************** -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.123.215.42 ※ 編輯: appleboy46 來自: 140.123.215.42 (03/10 11:15) > -------------------------------------------------------------------------- < 作者: appleboy46 (我是道明柏毅) 看板: RegExp 標題: Re: [問題] java 正規取代表示法 時間: Mon Mar 10 11:44:34 2008 ※ 引述《appleboy46 (我是道明柏毅)》之銘言: : 我有一個字串如下: : <li>( ?url = "LAB221"^^xsd:string )</li> : 我只要中間的 LAB221 的部份,所以我就用底下的正規,可是比對不出來 : 可以請大家幫忙看看嗎? : 感謝大家 : // compile pattern : Pattern p = Pattern.compile("<li>( \?[\\w+] = \"([A-Za-z0-9]+)\".* )</li>"); : // get matcher : Matcher m = p.matcher("<li>( ?url = \"LAB221\"^^xsd:string )</li>"); : // test if match : if (m.matches()) { : System.out.println(m.group(1)); : } : else : { : System.out.println("error"); : } 我解出來了~: // compile pattern Pattern p = Pattern.compile("[^\"]+\"([^\"]+)\"[^\"]+"); // get matcher Matcher m = p.matcher(result.replaceAll("[<li></li>]","")); // test if match if (m.matches()) { System.out.println(m.group(1)); } else { System.out.println("error"); } 請問大家,還有更好的解法嗎? 感謝 qrtt1 -- ******************************************************** * Appleboy Blog * * http://blog.Wu-Boy.com/ * * Appleboy Album * * http://pic.wu-boy.com * ******************************************************** -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.123.215.42 ※ 編輯: appleboy46 來自: 140.123.215.42 (03/10 11:45) > -------------------------------------------------------------------------- < 作者: appleboy46 (我是道明柏毅) 看板: RegExp 標題: Re: [問題] java 正規取代表示法 時間: Mon Mar 10 13:39:55 2008 ※ [本文轉錄自 java 看板] 作者: appleboy46 (我是道明柏毅) 站內: java 標題: Re: [問題] java 正規取代表示法 時間: Mon Mar 10 12:39:00 2008 ※ 引述《qrtt1 (愚人)》之銘言: : ※ 引述《appleboy46 (我是道明柏毅)》之銘言: : : // compile pattern : : Pattern p = Pattern.compile("[^\"]+\"([^\"]+)\"[^\"]+"); : : // get matcher : : Matcher m = p.matcher(result.replaceAll("[<li></li>]","")); : result.replaceAll("[<li></li>]","") : 這樣寫蠻詭異的 : "[<li></li>]" <==> "[<li/>]" 這二個意義不是一樣的嗎? : 您可能需要重新描述您的問題 請問一下 "[<li></li>]" <==> "[<li/>]" 我改成 "[</?li>]" 也可以 我想問的是 "[<li/>]" 這個也可以喔,跟我想像的不一樣 我以為是 符合 <li/> 這個字串才會被取代為空白~ 我正規觀念有錯誤嗎? -- ******************************************************** * Appleboy Blog * * http://blog.Wu-Boy.com/ * * Appleboy Album * * http://pic.wu-boy.com * ******************************************************** -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.123.215.42
PsMonkey:該到 RegExp 版去的... 還是去 RegExp 版吧... 03/10 12:49
-- ******************************************************** * Appleboy Blog * * http://blog.Wu-Boy.com/ * * Appleboy Album * * http://pic.wu-boy.com * ******************************************************** -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.123.107.41 > -------------------------------------------------------------------------- < 作者: MichaelHsin (BBS之蟲) 看板: RegExp 標題: Re: [問題] java 正規取代表示法 時間: Mon Mar 10 16:23:35 2008 ※ 引述《appleboy46 (我是道明柏毅)》之銘言: : Pattern p = Pattern.compile("<li>( \?[\\w+] = \"([A-Za-z0-9]+)\".* )</li>"); ^ ^ 這兩個括號要 escape 吧 -- 本 人 嚴 禁 在 中 華 民 國 台 灣 地 區 以 外 販 售 使 用 (本人の中華民國台灣地區以外での販售及び使用を嚴重に禁止します) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.30.55
appleboy46:嗯嗯 沒錯 忘記了 哈哈 03/10 21:36