作者appleboy46 (我是道明柏毅)
看板RegExp
標題[問題] java 正規取代表示法
時間Mon Mar 10 11:14:02 2008
我有一個字串如下:
<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