本文给大家带来了关于Java的相关教程,一起聊聊Java正则表达式中的单字符匹配和预定义字符。Java正则表达式中的单字符匹配和预定义字符,详细内容请看本文。
聊聊Java正则表达式中的单字符匹配和预定义字符
单字符匹配
[abc]:字符串的某个位置(某一个字符)满足 a、b、c 中的一个‘’
某个位置:该【单字符匹配】放的位置:
public class TestDemo {
public static void main(String[] args) {
String regex = "[zgq]";
System.out.println("z".matches(regex)); // true
System.out.println("g".matches(regex)); // true
System.out.println("q".matches(regex)); // true
System.out.println("zgq".matches(regex)); // false
}}
public class TestDemo {
public static void main(String[] args) {
String regex = "26[abc]3q";
System.out.println("26a3q".matches(regex)); // true
System.out.println("26abc".matches(regex)); // false
System.out.println("26b3q".matches(regex)); // true
}}
[^abc]:除了 a、b、c 之外的任意单个字符
public class TestDemo {
public static void main(String[] args) {
String regex = "[^cat]666";
System.out.println("c666".matches(regex)); // false
System.out.println("a666".matches(regex)); // false
System.out.println("t666".matches(regex)); // false
System.out.println("bb666".matches(regex)); // false
System.out.println("b666".matches(regex)); // true
}}
public class TestDemo {
public static void main(String[] args) {
String regex1 = "[12345]666";
String regex2 = "[^1-5]666";
System.out.println("1666".matches(regex1)); // true
System.out.println("3666".matches(regex1)); // true
System.out.println("5666".matches(regex1)); // true
System.out.println("6666".matches(regex1)); // false
System.out.println("1666".matches(regex2)); // false
System.out.println("3666".matches(regex2)); // false
System.out.println("5666".matches(regex2)); // false
System.out.println("6666".matches(regex2)); // true
}}
[a-zA-z]:匹配单个英文字母
public class TestDemo {
public static void main(String[] args) {
String regex = "[a-zA-Z]666";
System.out.println("6666".matches(regex)); // false
System.out.println("b666".matches(regex)); // true
}}
[a-d[1-6]]:和 [a-d1-6] 一样(并集)
public class TestDemo {
public static void main(String[] args) {
String regex1 = "[a-d[1-6]]";
String regex2 = "[a-d1-6]";
System.out.println("a".matches(regex1)); // true
System.out.println("e".matches(regex1)); // false
System.out.println("1".matches(regex1)); // true
System.out.println("7".matches(regex1)); // false
System.out.println("a".matches(regex2)); // true
System.out.println("e".matches(regex2)); // false
System.out.println("1".matches(regex2)); // true
System.out.println("7".matches(regex2)); // false
}}
[zgq&&[god]]:交集
public class TestDemo {
public static void main(String[] args) {
String regex1 = "[zgq&&[god]]";
System.out.println("q".matches(regex1)); // false
System.out.println("d".matches(regex1)); // false
System.out.println("g".matches(regex1)); // true
}}
[zgq&&[god]]:取差集
public class TestDemo {
public static void main(String[] args) {
String regex1 = "[zgq&&[^god]]";
System.out.println("q".matches(regex1)); // true
System.out.println("d".matches(regex1)); // false
System.out.println("g".matches(regex1)); // false
System.out.println("z".matches(regex1)); // true
// 取差集, 从字母 a 到字母 z 中去除字母 b 和 d
String regex2 = "[a-z&&[^bd]]";
System.out.println("d".matches(regex2)); // false
System.out.println("a".matches(regex2)); // true
}}
预定义字符
预定义字符匹配的仍然是单个字符:
● 【.】:任意单个字符
● 【\d】:数字
● 【\D】:非数字
● 【\s】:空白
● 【\S】:非空白
● 【\w】:字母(英文字母、下划线、数字)
● 【\W】:非英文字母
※Java 中需以两个【\】开头表示预定义字符
public class TestDemo {
public static void main(String[] args) {
String r1 = ".";
System.out.println("@".matches(r1)); // true
System.out.println("庆".matches(r1)); // true
System.out.println("I".matches(r1)); // true
System.out.println(" ".matches(r1)); // true
System.out.println(".".matches(r1)); // true
}}
public class TestDemo {
public static void main(String[] args) {
// 匹配 java 文件
String r1 = ".\\.java";
System.out.println("a.java".matches(r1)); // true
System.out.println("xjava".matches(r1)); // false
System.out.println("5java".matches(r1)); // false
}}
public class TestDemo {
public static void main(String[] args) {
String r1 = "[abc]";
String r2 = "\\[abc\\]";
System.out.println("a".matches(r1)); // true
System.out.println("c".matches(r1)); // true
System.out.println("[abc]".matches(r1)); // false
System.out.println("a".matches(r2)); // false
System.out.println("c".matches(r2)); // false
System.out.println("[abc]".matches(r2)); // true
}}
关于Java正则表达式中的单字符匹配和预定义字符之详细解析就到这里,翼速应用平台内有更多相关资讯,欢迎查阅!
我来说两句