“正则表达式 元字符 定位符”的版本间的差异
		
		
		
		
		
		跳到导航
		跳到搜索
		
				
		
		
	
| Jihongchang(讨论 | 贡献) | Jihongchang(讨论 | 贡献)  | ||
| 第237行: | 第237行: | ||
| 找到:123abc | 找到:123abc | ||
| </syntaxhighlight> | </syntaxhighlight> | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | === 示例:在 "123" 中找 ^[0-9]+[a-z]+$ === | ||
| + | <syntaxhighlight lang="java"> | ||
| + | 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)); | ||
| + | |||
| + |         } | ||
| + | |||
| + |     } | ||
| + | |||
| + | } | ||
| + | </syntaxhighlight>控制台什么也不输出,因为正则表达式要求 内容字符串必须以至少1个小写字母结束 | ||
2022年11月17日 (四) 11:01的版本
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个小写字母结束