入门介绍
正则表达式是由普通字符(如英文字母、数字等)以及特殊字符(如元字符"\D")组成的字符串模式,正则表达式可以理解成一套模板,这套模板可以匹配字符串。
入门练习
例如从下面这行字符串
https://editor.csdn.net/md?articleId=112210427
中提取出文章id
package cn.test;
import org.junit.Test;
public class TestRegex {
@Test
public void testRegex() {
String str = "https://editor.csdn.net/md?articleId=112210427";
String articleId = str.replaceAll("\\D", "");
System.out.println(articleId);
}
}
运行结果:
利用正则表达式分解字符串
入门实例
package cn.test;
import org.junit.Test;
public class TestRegex {
@Test
public void testStr() {
String content="正则表达式-CSDN博客";
/*
* 正则表达式\\p{Punct}匹配的是标点符号
* */
String [] contentRegex = content.split("\\p{Punct}");
for (String string : contentRegex) {
System.out.println(string);
}
}
}
运行结果:
常用元字符及其含义
元字符 | 正则表达式写法 | 含义 |
---|---|---|
\d | \\d | 代表0-9中的任意数字 |
\D | \\D | 代表任何一个非数字字符 |
\S | \\S | 代表非空格类字符 |
\s | \\s | 空格类字符 |
\p{Lower} | \\p{Lower} | 小写英文字母 |
\p{Upper} | \\p{Upper} | 大写英文字母 |
\p{Punct | \\p{Punct} | 标点符号 |
\p{Blank} | \\p{Blank} | 空格或制表符(\t) |
正则表达式中,使用方括号括起若干字符表示一个元字符,该元字符匹配的是括号内的任意一个字符。
如String str = "[abc]123"
匹配的是"a1123","b123“,"c13"
包含方括号的元字符
写法 | 含义 |
---|---|
[abc] | a或b或c |
[^abc] | 除去abc的任何字符 |
[a-z] | a~z中的任何一个字符 |
[a-zA-Z] | 所有英文字母 |
[1-9] | 1~9中的任何一个数字 |
[a-d1-3] | 字母a到d和数字1到3 |
方括号的元字符演示 |
package cn.test;
import org.junit.Test;
public class TestRegex {
@Test
public void testRegex() {
String str = "a1b2c3dAZ4";
String strReplace1 = str.replaceAll("[abc]", "");
System.out.println("使用元字符[abc]匹配的结果为:"+strReplace1); //123dAZ4
String strReplace2 = str.replaceAll("[^abc]", "");//abc
System.out.println("使用元字符[^abc]匹配的结果为:"+strReplace2);
String strReplace3 = str.replaceAll("[a-zA-Z]", "");//1234
System.out.println("使用元字符[a-zA-Z]匹配的结果为:"+strReplace3);
String strReplace4 = str.replaceAll("[1-9]", "");//abcdAZ
System.out.println("使用元字符[1-9]匹配的结果为:"+strReplace4);
String strReplace5 = str.replaceAll("[1-3]", "");//abcdAZ4
System.out.println("使用元字符[1-3]匹配的结果为:"+strReplace5);
String strReplace6 = str.replaceAll("[a-d1-3]", "");//AZ4
System.out.println("使用元字符[a-d1-3]匹配的结果为:"+strReplace6);
}
}
运行结果
常用限定符
限定符定义了某些元素可以出现的频次,如X{n,m}表示X出现n到m次的字符都可以匹配
写法 | 含义 |
---|---|
X{n} | X确定出现了几次,如a{2},字符’caab’中有两个a出现,正好匹配到此次的正则表达式 |
X{n,}, | X至少出现n次,如A{2,},A至少出现2次 |
X{n,m} | X出现n到m次,如ab{1,3}表示ac这个字符出现1到3次 |
X? | X出现0次到1次 |
X* | X出现0次到1次 |
X+ | X出现1次或多次 |