正则表达式用来描述特定的字符串模式。
1. 在正则表达式中,有些字符具有特殊的含义:
| 特殊含义字符 | 含义 |
|---|---|
| . | 任意一个字符 |
| [abc] | 表示a、b或c中的任意一个字符 |
| [^abc] | 表示a、b或c以外的任意一个字符 |
| [a-zA-Z] | 表示介于a到z或A到Z中的任意一个字符 |
| \s | 表示空白符(空格、tab、换行、换页、回车) |
| \S | 表示非空白符 |
| \d | 表示任意一个数字[0-9] |
| \D | 表示任意一个非数字[^0-9] |
| \w | 表示词字符,[a-zA-Z_0-9] |
| \W | 表示非词字符 |
2. 在正则表达式中,有些特殊字符表示字符出现的次数:
| 表示次数的字符 | 含义 |
|---|---|
| * | 表示0次或多次 |
| + | 表示1次或多次 |
| ? | 表示0次或1次 |
| {n} | 恰好n次 |
| {n,m} | 至少n次,至多m次 |
3. 正则表达式例子:
public class RegularExpressionTest {
public static void main(String[] args) {
// 把所有aaa替换成z ----》zbzcz
System.out.println("aaabaaacaaa".replaceAll("a{3}", "z"));
// 把a、aa、aaa替换成*----》*b*c*
System.out.println("aaabaaca".replaceAll("a{1,3}", "\\*"));
// 把数字替换成z----》zzzazzbzzcc
System.out.println("123a44b35cc".replaceAll("\\d", "z"));
// 把非数字替换成0----》12304403500
System.out.println("123a44b35cc".replaceAll("\\D", "0"));
// 把.替换成\----》www\baidu\com
System.out.println("www.baidu.com".replaceAll("\\.", "\\\\"));
// 把以a开头和以b结尾的三个字符串替换成-----》-hello-all
System.out.println("azbhelloahball".replaceAll("a.b", "-"));
// 把所有的词字符替换成#----》#.#.#.#.#.#.#.#.#.#
System.out.println("a.b.c.A.B.C.1.2.3.4".replaceAll("\\w", "#"));
}
}
注意:由于“.”,”*”等在正则表达式中具有特殊含义,如果要用字面上的这些字符,必须以“\\”开头。
反斜杠问题请参考这篇文章
本文介绍了正则表达式的特殊字符及其使用方法,并通过多个示例演示了如何替换字符串中的特定模式,包括替换指定数量重复的字符、非数字字符及特殊符号等。
3639

被折叠的 条评论
为什么被折叠?



