正则表达式 Pattern 类
https://www.bilibili.com/video/BV1Eq4y1E79W/?p=18
Pattern 对象是一个正则表达式对象。
Pattern 没有公共构造方法。
要创建一个 Pattern 对象,调用其公共静态方法,它返回一个 Pattern 对象。
该方法接受一个正则表达式作为它的第一个参数,比如:
Pattern pattern = Pattern.compile(regStr);
示例:演示 matches 方法进行整体匹配判断
示例1:
import java.util.regex.Pattern;
public class PatternMethod {
public static void main(String[] args) {
String content = "hello abc hello,韩顺平教育";
String regStr = "hello";
boolean matches = Pattern.matches(regStr, content);
System.out.println("整体匹配=" + matches);
}
}
整体匹配=false
示例2:
import java.util.regex.Pattern;
public class PatternMethod {
public static void main(String[] args) {
String content = "hello abc hello,韩顺平教育";
String regStr = "hello.*";
boolean matches = Pattern.matches(regStr, content);
System.out.println("整体匹配=" + matches);
}
}
整体匹配=true
示例3:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegExp11 {
public static void main(String[] args) {
String content = "edu.3dsmax.tech/yg/bitibiti/my6652/pc/qg/05-51/index.html#201211-1?track_id=jMc0jn-hm-yHrNfVad37YdhOUh41XYmjlss9zocM26gspY5ArwWuxb4wYWpmh2Q7doU0wLkViEhUIO1qNtukyAgake2jG1bTd23IR57XzV83E9bAXWkStcAh4j9Dz7a87ThGIqgdCZ2zpQy33a0SVNMfmJLSNnDzJ71TU68Rc-3PKE7VA3kYzjk4RrKU";
/**
* 思路:
* 1、先确定 url 的开始部分 https:// | http:// ((http|https)://)
* 2、确定域名的部分 ([\w-]+\.)+[\w-]+
* 3、匹配域名后面的路径和参数 (\\/[\\w-?=&/%.#]*)?
*/
String regStr = "((http|https)://)?([\\w-]+\\.)+[\\w-]+(\\/[\\w-?=&/%.#]*)?"; //注意:[.]表示匹配就是 . 本身
Pattern pattern = Pattern.compile(regStr);
Matcher matcher = pattern.matcher(content);
if (matcher.find()) {
System.out.println("满足格式");
} else {
System.out.println("不满足格式");
}
System.out.println("是否整体匹配:" + Pattern.matches(regStr, content));
}
}
满足格式
true
示例4:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegExp11 {
public static void main(String[] args) {
String content = "edu.3dsmax.tech/yg/bitibiti/my6652/pc/qg/05-51/index.html#201211-1?track_id=jMc0jn-hm-yHrNfVad37YdhOUh41XYmjlss9zocM26gspY5ArwWuxb4wYWpmh2Q7doU0wLkViEhUIO1qNtukyAgake2jG1bTd23IR57XzV83E9bAXWkStcAh4j9Dz7a87ThGIqgdCZ2zpQy33a0SVNMfmJLSNnDzJ71TU68Rc-3PKE7VA3kYzjk4RrKU";
/**
* 思路:
* 1、先确定 url 的开始部分 https:// | http:// ((http|https)://)
* 2、确定域名的部分 ([\w-]+\.)+[\w-]+
* 3、匹配域名后面的路径和参数 (\\/[\\w-?=&/%.#]*)?
*/
String regStr = "((http|https)://)?([\\w-]+\\.)+[\\w-]+(\\/[\\w-?=&/%.#]*)?"; //注意:[.]表示匹配就是 . 本身
Pattern pattern = Pattern.compile(regStr);
Matcher matcher = pattern.matcher(content);
if (matcher.find()) {
System.out.println("满足格式");
} else {
System.out.println("不满足格式");
}
System.out.println("是否整体匹配:" + Pattern.matches(regStr, content));
}
}
满足格式
是否整体匹配:true
示例5:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegExp11 {
public static void main(String[] args) {
String content = "010http://edu.3dsmax.tech/yg/bitibiti/my6652/pc/qg/05-51/index.html#201211-1?track_id=jMc0jn-hm-yHrNfVad37YdhOUh41XYmjlss9zocM26gspY5ArwWuxb4wYWpmh2Q7doU0wLkViEhUIO1qNtukyAgake2jG1bTd23IR57XzV83E9bAXWkStcAh4j9Dz7a87ThGIqgdCZ2zpQy33a0SVNMfmJLSNnDzJ71TU68Rc-3PKE7VA3kYzjk4RrKU";
/**
* 思路:
* 1、先确定 url 的开始部分 https:// | http:// ((http|https)://)
* 2、确定域名的部分 ([\w-]+\.)+[\w-]+
* 3、匹配域名后面的路径和参数 (\\/[\\w-?=&/%.#]*)?
*/
String regStr = "((http|https)://)?([\\w-]+\\.)+[\\w-]+(\\/[\\w-?=&/%.#]*)?"; //注意:[.]表示匹配就是 . 本身
Pattern pattern = Pattern.compile(regStr);
Matcher matcher = pattern.matcher(content);
if (matcher.find()) {
System.out.println("满足格式");
} else {
System.out.println("不满足格式");
}
System.out.println("是否整体匹配:" + Pattern.matches(regStr, content));
}
}
满足格式
是否整体匹配:false
示例:
import java.util.regex.Pattern;
public class Hello {
public static void main(String[] args) {
String content = "I am hsp from hspedu.com.";
String pattern = ".*hspedu.*";
boolean isMatch = Pattern.matches(pattern, content);
System.out.println("是否整体匹配成功:" + isMatch);
}
}
是否整体匹配成功:true
断点调试,跟踪源代码