我已使用Java将网页的页面源复制到文本文件中。
文件中有以下字符串,我只需复制数字并将其保存在另一个文件中。
'数字',' [670341345,670341248,670320495,670318700,670317434,670315031,670314751,670314299,670311573]');
只是以&#34开头的字符串; '数字' ,' ["并以"结束]&#39); "
这是我做的:
import java.io.*;
import java.net.*;
public class copyID {
public static void main (String[] args) throws Exception {
String url = "http://www.google.com";
StringBuilder fullPage = new StringBuilder();
URL olx = new URL (url);
URLConnection conn = olx.openConnection();
BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String inputLine;
while((inputLine = in.readLine()) != null){
fullPage.append(inputLine+"\n");
}
in.close();
saveToFile(fullPage.toString()); }
public static void saveToFile(String input){
try{
BufferedWriter out = new BufferedWriter (new FileWriter("ID_List.txt"));
out.write(input);
out.close();
}
catch (IOException e){}
}
}
我该怎么办?我正在使用Eclipse。
答案 0 :(得分:2)
您的搜索字符串非常具体,所以我认为即使是最强化的反正则表达式HTML用户也可以使用正则表达式。
下面的代码显示了如何隔离相关文本并提取数字。我假设您可以研究如何解决其余问题:
String example = "sdflkjsdflskdfs0980sdflkjmlsdf'numbers', '[1231231"
+ "23,123123123,1231232,345634,3453534,123123]');asdasdasdasd";
Pattern pattern = Pattern.compile("'numbers', '\\[(.*?)\\]'\\);");
Matcher matcher = pattern.matcher(example);
while (matcher.find()) {
String[] numbers = matcher.group(1).split(",");
for (String s : numbers) {
System.out.println(s);
}
输出:
123123123 123123123 1231232 345634 3453534 123123
答案 1 :(得分:0)
您可以使用String
方法执行此操作。
请注意,这只会在第一次出现“[..]”时出现。
String str = "sdflkjsdflskdfs0980sdflkjmlsdf'numbers', '[1231231"
+ "23,123123123,1231232,345634,3453534,123123]');asdasdasdasd";
String subStr = str.substring(str.indexOf("[")+1, str.indexOf("]"));
String[] numbers = subStr.split(",");
for(String num: numbers)
System.out.println(num);
输出:
123123123
123123123
1231232
345634
3453534
123123