Home > Tags > Matcher
Matcher
正規表現で文字列を抜き出す
- 2009/11/06 9:26:19
- Java
Javaで正規表現を使って文字列を抜き出すには、次のようなプログラムを用意すればいい。正規表現についての詳しい説明は省略。便利と言えば便利。ただ、ネストした構造とか場合分けが多い構造の文章に対して適用するのは結構大変ので、そういった場合は独自にParserを実装した方がいい。Interpreterパターンとか使えばバグも少なく実装できるはず。ただ、言語定義ができない人には難しいので、コンパイラ技術とか勉強することになるはず。
import java.util.regex.Pattern;
public class App {
private String regexp1 = "<div class=target>(.*)<div class=target2>(.*)</div></div>";
private String regexp2 = "href=\"(.+?)\"";
private String target1 = "<div class=target>abc<div class=target2>def</div></div>";
private String target2 = "<a href=\"index.html\">トップへ</a><a href=\"index1.html\">トップ1へ</a>";
public void sample() {
Pattern pattern = Pattern.compile(regexp1);
Matcher matcher = pattern.matcher(target1);
while (matcher.find()) {
System.out.println("一致: " + matcher.group(2));
}
// URL抜き出し
pattern = Pattern.compile(regexp2);
matcher = pattern.matcher(target2);
while (matcher.find()) {
System.out.println(matcher.group(1));
}
}
public static void main(String[] args) {
App app = new App();
app.sample();
}
}
実行結果は次の通り
index.html
index1.html
- Comments (Close): 0
- Trackbacks (Close): 0
Home > Tags > Matcher
- 検索
- カレンダー
« 8月 2010 » S M T W T F S 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 - 広告
- 最近のコメント
- Android携帯を改造する? に Tweets that mention Android携帯を改造する? - hiro345 -- Topsy.com より
- Android携帯を改造する? に Tweets in Japan 2010-07-29 « Android Fun! より
- HT-03Aの無線LANについて調子が良くない に Tweets that mention hiro345» ブログアーカイブ » HT-03Aの無線LANについて調子が良くない -- Topsy.com より
- HT-03AでGoogleアカウントリセット に Tweets that mention hiro345» ブログアーカイブ » HT-03AでGoogleアカウントリセット -- Topsy.com より
- ChaSenとRubyをMac OS へインストール に Tweets that mention hiro345» ブログアーカイブ » ChaSenとRubyをMac OS へインストール -- Topsy.com より
- アーカイブ
-
- 2010年7月
- 2010年6月
- 2010年5月
- 2010年4月
- 2010年3月
- 2010年2月
- 2010年1月
- 2009年12月
- 2009年11月
- 2009年10月
- 2009年9月
- 2009年8月
- 2009年7月
- 2009年6月
- 2009年5月
- 2009年4月
- 2009年3月
- 2009年2月
- 2009年1月
- 2008年12月
- 2008年11月
- 2008年10月
- 2008年9月
- 2008年8月
- 2008年7月
- 2008年6月
- 2008年5月
- 2008年4月
- 2008年3月
- 2008年2月
- 2008年1月
- 2007年12月
- 2007年11月
- 2007年10月
- 2007年9月
- 2007年8月
- 2007年7月
- 2007年6月
- 2007年5月
- 2007年4月
- 2007年3月
- 2007年2月
- 2007年1月
- 2006年12月
- 2006年11月
- 2006年10月
- 2006年9月
- 2006年8月
- 2006年7月
- 2006年6月
- 2006年5月
- 2006年4月
- 2006年3月
- 2006年2月
- 2006年1月
- 2005年12月
- 2005年11月
- 2005年10月
- 2005年9月
- 2005年8月
- 2005年7月
- 2005年6月
- 2005年5月
- 2005年4月
- 2005年3月
- 2005年2月
- 2005年1月
- 2004年12月
- 2004年11月
- 2004年10月
- 2004年9月
- 2004年8月
- 2004年7月
- 2004年6月
- 2004年5月
- 2004年4月
- 2004年3月
- 2004年2月
- 2004年1月
- 2003年12月
- 2003年11月
- 2003年10月
- 2003年9月
- 2003年8月
- 2003年7月
- 2003年6月
- 2003年5月