正则在线测试
Demo01
package RegexTest;
/**
* 正则基本操作
*/
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Demo01 {
public static void main(String args[]) {
Pattern p = Pattern.compile("\\w+");
Matcher m = p.matcher("123kjd&@akjda"); // 尝试将整个字符序列与该模式匹配
// System.out.println(m.matches()); // 匹配时候成功
// System.out.println(m.find()); // 该方法扫描输入的序列,查找与该模式匹配的下一个子序列
// System.out.println(m.find());
// System.out.println(m.find());
while (m.find()){
// 输出匹配结果
System.out.println(m.group()); // group()和group(0)匹配整个表达式的字符串
System.out.println(m.group(0));
}
}
}
Demo02
package RegexTest;
/**
* group分组
*/
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Demo02 {
public static void main(String args[]) {
Pattern p = Pattern.compile("([a-z]+)([0-9]+)");
Matcher m = p.matcher("kj123**dd59aw&@akj36da"); // 尝试将整个字符序列与该模式匹配
while (m.find()){
System.out.println(m.group()); // group()和group(0)匹配整个表达式的字符串
System.out.println(m.group(1));
System.out.println(m.group(2));
System.out.println("------------");
}
}
}
Demo03
package RegexTest;
/**
* 字符串的替换
*/
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Demo03 {
public static void main(String args[]) {
// 表达式对象
Pattern p = Pattern.compile("[0-9]");
// 创建Matcher对象
Matcher m = p.matcher("kj123**dd59aw&@akj36da");
// 替换匹配到的字符
String nStr = m.replaceAll("#");
System.out.println(nStr);
}
}
Demo04
package RegexTest;
import java.util.Arrays;
/**
* 字符串的分割
*/
public class Demo04 {
public static void main(String args[]) {
String s = "adylgt29389ad23ljd";
String[] sArr = s.split("\\d+");
System.out.println(Arrays.toString(sArr));
}
}
java爬虫-用正则表达式爬取超链接
package RegexTest;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class WebSpiderTest {
/**
* 获得url对应网页的源码内容
* @param urlStr
* @return
*/
public static String getURLContent(String urlStr, String code){
StringBuilder content = new StringBuilder();
try {
URL url = new URL(urlStr);
BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream(), code));
String temp = "";
while ((temp=reader.readLine())!=null){
content.append(temp);
}
} catch (IOException e) {
e.printStackTrace();
}
return content.toString();
}
public static void main(String[] args) {
String destStr = getURLContent("https://www.163.com", "gbk");
Pattern p = Pattern.compile("(http[s]?://[a-zA-Z0-9./]+?)\"");
Matcher m = p.matcher(destStr);
while (m.find()){
System.out.println(m.group(1));
}
}
}