“正则表达式 Pattern 类”的版本间的差异
跳到导航
跳到搜索
Jihongchang(讨论 | 贡献) (→示例:) |
Jihongchang(讨论 | 贡献) |
||
(未显示同一用户的1个中间版本) | |||
第202行: | 第202行: | ||
− | + | ==== 示例6: ==== | |
− | ==== | ||
<syntaxhighlight lang="java"> | <syntaxhighlight lang="java"> | ||
import java.util.regex.Pattern; | import java.util.regex.Pattern; | ||
第219行: | 第218行: | ||
</syntaxhighlight><syntaxhighlight lang="console"> | </syntaxhighlight><syntaxhighlight lang="console"> | ||
是否整体匹配成功:true | 是否整体匹配成功:true | ||
− | </syntaxhighlight> | + | </syntaxhighlight> |
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | === 源码: === | ||
+ | <syntaxhighlight lang="java"> | ||
+ | package java.util.regex; | ||
+ | |||
+ | …… | ||
+ | public final class Pattern | ||
+ | implements java.io.Serializable | ||
+ | { | ||
+ | …… | ||
+ | public static boolean matches(String regex, CharSequence input) { | ||
+ | Pattern p = Pattern.compile(regex); | ||
+ | Matcher m = p.matcher(input); | ||
+ | return m.matches(); | ||
+ | } | ||
+ | …… | ||
+ | } | ||
+ | </syntaxhighlight> |
2022年11月19日 (六) 10:59的最新版本
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
示例6:
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
源码:
package java.util.regex;
……
public final class Pattern
implements java.io.Serializable
{
……
public static boolean matches(String regex, CharSequence input) {
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(input);
return m.matches();
}
……
}