正規表現:
String regexp = "([0-9.]{1,15})[ \t]*([0-9]{1,15})[ \t]*([0-9.]{1,15})[ \t]*(\"(.*?)\"\\s+\\((\\d{4})\\)\\s+\\{(.*?)\\})";
文章:
1000000103 50 4.5 #1 シングル (2006) 2...1.2.12 8 2.7 $1,000,000 チャンス・オブ・ア・ライフタイム (1986) 11..2.2..2 8 5.0 $100 タクシー (2001) ....13.311 9 7.1 $100,000 Name That Tune (1984) 3..21...22 10 4.6 $2 ビル (2002) 30010....3 18 2.7 2,500 万ドルのデマ (2004) 2000010002 111 5.6 1日40ドル (2002年) 2000000..4 26 1.6 $5 カバー (2009) .0..2.0122 15 7.8 $9.99 (2003) ..2...1113 8 7.5 $weepstake$ (1979) 0000000125 3238 8.7 アロアロ!(1982) 1....22.12 8 6.5 アロアロ!(1982) {空軍兵でいっぱいのバレル (#7.7)
Java と MySQL を一緒に使用しようとしています。私が計画しているプロジェクトのためにそれを学んでいます。目的の出力を次のようにしたい:
distribution = first column
rank = second column
votes = thirst column
title = fourth column
最初の 3 つは問題なく動作します。4枚目で困っています。
これは、最初のいくつかのエントリがうまく貼り付けられていないようなもので、さらにいくつかのエントリを貼り付けると、私があなたに見せようとしていることを理解しやすくなるかもしれません。だからここにある:
0...001122 16 7.8 「アロアロアロ!」(1982) {グルーバーはいくつかのミンチを行います (#3.2)} 100..01103 21 7.4 「アロアロアロ!」(1982) {ハンス・ゴーズ・オーバー・ザ・トップ (#4.1)} ....022100 11 6.9 「『アロ』アロ!」(1982) {こんにちはハンス (#7.4)} 0....03022 21 8.4 「アロアロアロ!」(1982) {Herr Flick's Revenge (#2.6)} ……8..1 6 7.0 「『アロ』アロ!」(1982) {ヒトラーの最後のハイル (#8.3)} .....442.. 5 6.5 "'Allo'Allo!" (1982) {諜報員 (#6.5)} ....1123.2 9 6.9 "'Allo'Allo!" (1982) {It's Raining Italians (#6.2)} ....1.33.3 10 7.8 「『アロ』アロ!」(1982) {ルクレール・アゲインスト・ザ・ウォール (#5.18)} ....22211. 8 6.4 「アロアロアロ!」(1982) {通信回線 (#7.5)}
私が使用しているコード:
stmt.executeUpdate("CREATE TABLE mytable(distribution char(20)," +
"votes integer," + "rank float," + "title char(250));");
String regexp ="([\\d\\.]+)\\s+(\\d+)\\s+([\\d\\.]+)\\s+(.*?\\s+\\(\\d{4}\\).*)";
Pattern pattern = Pattern.compile(regexp);
String line;
String data= "";
while ((line = bf.readLine()) != null) {
data = line.replaceAll("'", " ");
String data2 = data.replaceAll("\"", "");
//System.out.println(data2);
Matcher matcher = pattern.matcher(data2);
if (matcher.find()) {
String distribution = matcher.group(1);
String votes = matcher.group(2);
String rank = matcher.group(3);
String title = matcher.group(4);
//System.out.println(distribution + " " + votes + " " + rank + " " + title);
String todo = ("INSERT into mytable " +
"(Distribution, Votes, Rank, Title) "+
"values ('"+distribution+"', '"+votes+"', '"+rank+"', '"+title+"')");
stmt = con.createStatement();
int r = stmt.executeUpdate(todo);
}
}