正则表达式 元字符 定位符
跳到导航
跳到搜索
https://www.bilibili.com/video/BV1Eq4y1E79W?p=12
定位符,规定要匹配的字符串出现的位置,比如在字符串的开始还是在结束的位置
符号 | 含义 | 示例 | 说明 | 匹配输入 |
---|---|---|---|---|
^ | 指定起始字符 | ^[0-9]+[a-z]* | 以至少1个数字开头,后接任意个小写字母的字符串 | 123、6aa、555edf |
$ | 指定结束字符 | ^[0-9]\\-[a-z]+$ | 以1个数字开头后接连字符"-",并以至少1个小写字母结尾的字符串 | 1-a |
\\b | 匹配目标字符串的边界 | han\\b | 这里说的字符串边界指的是子串间有空格,或者是目标字符串的结束位置;
既可以是字符串的最后,也可是空格前面的子串 |
hanshunping sphan nnhan |
\\B | 匹配目标字符串的非边界 | han\\B | 和\\b的含义刚刚相反 | hanshunping sphan nnhan |
示例:在 "123abc" 中找 ^[0-9]+[a-z]*
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegExp06 {
public static void main(String[] args) {
String content = "123abc";
//以至少1个数字开头,后接任意个小写字母的字符串
String regStr = "^[0-9]+[a-z]*";
Pattern pattern = Pattern.compile(regStr);
Matcher matcher = pattern.matcher(content);
while (matcher.find()) {
System.out.println("找到:" + matcher.group(0));
}
}
}
找到:123abc
^[0-9]只匹配数字开头
示例:在 "a123abc" 中找 ^[0-9]+[a-z]*
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegExp06 {
public static void main(String[] args) {
String content = "a123abc";
//以至少1个数字开头,后接任意个小写字母的字符串
String regStr = "^[0-9]+[a-z]*";
Pattern pattern = Pattern.compile(regStr);
Matcher matcher = pattern.matcher(content);
while (matcher.find()) {
System.out.println("找到:" + matcher.group(0));
}
}
}
控制台没有输出,因为 content 不再是数字字符开头
示例:在 "123abc12" 中找 ^[0-9]+[a-z]*
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegExp06 {
public static void main(String[] args) {
String content = "123abc12";
//以至少1个数字开头,后接任意个小写字母的字符串
String regStr = "^[0-9]+[a-z]*";
Pattern pattern = Pattern.compile(regStr);
Matcher matcher = pattern.matcher(content);
while (matcher.find()) {
System.out.println("找到:" + matcher.group(0));
}
}
}
找到:123abc
示例:在 "123" 中找 ^[0-9]+[a-z]*
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegExp06 {
public static void main(String[] args) {
String content = "123";
//以至少1个数字开头,后接任意个小写字母的字符串
String regStr = "^[0-9]+[a-z]*";
Pattern pattern = Pattern.compile(regStr);
Matcher matcher = pattern.matcher(content);
while (matcher.find()) {
System.out.println("找到:" + matcher.group(0));
}
}
}
找到:123
示例:在 "123abc12" 中找 ^[0-9]+[a-z]+$
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegExp06 {
public static void main(String[] args) {
String content = "123abc12";
//以至少1个数字开头,必须以至少1个小写字母结束
String regStr = "^[0-9]+[a-z]+$";
Pattern pattern = Pattern.compile(regStr);
Matcher matcher = pattern.matcher(content);
while (matcher.find()) {
System.out.println("找到:" + matcher.group(0));
}
}
}
控制台什么也不输出,因为正则表达式要求 内容字符串必须以至少1个小写字母结束
示例:在 "123abc" 中找 ^[0-9]+[a-z]+$
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegExp06 {
public static void main(String[] args) {
String content = "123abc";
//以至少1个数字开头,必须以至少1个小写字母结束
String regStr = "^[0-9]+[a-z]+$";
Pattern pattern = Pattern.compile(regStr);
Matcher matcher = pattern.matcher(content);
while (matcher.find()) {
System.out.println("找到:" + matcher.group(0));
}
}
}
找到:123abc
示例:在 "123" 中找 ^[0-9]+[a-z]+$
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegExp06 {
public static void main(String[] args) {
String content = "123";
//以至少1个数字开头,必须以至少1个小写字母结束
String regStr = "^[0-9]+[a-z]+$";
Pattern pattern = Pattern.compile(regStr);
Matcher matcher = pattern.matcher(content);
while (matcher.find()) {
System.out.println("找到:" + matcher.group(0));
}
}
}
控制台什么也不输出,因为正则表达式要求 内容字符串必须以至少1个小写字母结束
示例:在 "123a" 中找 ^[0-9]+[a-z]+$
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegExp06 {
public static void main(String[] args) {
String content = "123a";
//以至少1个数字开头,必须以至少1个小写字母结束
String regStr = "^[0-9]+[a-z]+$";
Pattern pattern = Pattern.compile(regStr);
Matcher matcher = pattern.matcher(content);
while (matcher.find()) {
System.out.println("找到:" + matcher.group(0));
}
}
}
找到:123a
示例:在 "123abc" 中找 ^[0-9]+\\-[a-z]+$
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegExp06 {
public static void main(String[] args) {
String content = "123abc";
//以至少1个数字开头,必须以至少1个小写字母结束,同时中间有连字符(减)-
String regStr = "^[0-9]+\\-[a-z]+$";
Pattern pattern = Pattern.compile(regStr);
Matcher matcher = pattern.matcher(content);
while (matcher.find()) {
System.out.println("找到:" + matcher.group(0));
}
}
}
控制台什么也不输出,因为正则表达式要求被匹配内容中间还要有连字符(减号)-
示例:在 "123-abc" 中找 "^[0-9]+\\-[a-z]+$"
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegExp06 {
public static void main(String[] args) {
String content = "123-abc";
//以至少1个数字开头,必须以至少1个小写字母结束,同时中间有连字符(减)-
String regStr = "^[0-9]+\\-[a-z]+$";
Pattern pattern = Pattern.compile(regStr);
Matcher matcher = pattern.matcher(content);
while (matcher.find()) {
System.out.println("找到:" + matcher.group(0));
}
}
}
找到:123-abc
示例:在 "hanshunping sphan nnhan" 中找 "han\\b"
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegExp06 {
public static void main(String[] args) {
String content = "hanshunping sphan nnhan";
//表示匹配边界的han
String regStr = "han\\b";
Pattern pattern = Pattern.compile(regStr);
Matcher matcher = pattern.matcher(content);
while (matcher.find()) {
System.out.println("找到:" + matcher.group(0));
}
}
}
找到:han
找到:han
示例:在 "hanshunping sphan nnhanu" 中找 "han\\b"
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegExp06 {
public static void main(String[] args) {
String content = "hanshunping sphan nnhanu";
//表示匹配边界的han
String regStr = "han\\b";
Pattern pattern = Pattern.compile(regStr);
Matcher matcher = pattern.matcher(content);
while (matcher.find()) {
System.out.println("找到:" + matcher.group(0));
}
}
}
找到:han
示例:在 "hanshunping sphan nnhan" 中找 "han\\B"
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegExp06 {
public static void main(String[] args) {
String content = "hanshunping sphan nnhan";
//和 \\b 的含义刚好相反
String regStr = "han\\B";
Pattern pattern = Pattern.compile(regStr);
Matcher matcher = pattern.matcher(content);
while (matcher.find()) {
System.out.println("找到:" + matcher.group(0));
}
}
}
找到:han