------- android培训、java培训、期待与您交流! ----------
正则表达式:
用于操作字符串数据,通过特定的符号来体现,但是阅读性较差
四种功能:str.方法(reg);
1.匹配 matches 只想知道该字符是对是错
2.切割 split 按照自定的方式将字符串变成多个,获取规则以外的子串
3.替换 replaceAll 将已有字符串变成另外一个
4.获取 拿到符合需求规则的子串
操作步骤:
1.将正则表达式封装成对象
2.让正则对象和要操作的字符串相关联
3.关联后获取正则匹配引擎
4.通过引擎对符合规则的子串进行操作
String s=”kjkwefjiew212jfewi5445ofjwoeif”;
String reg=”[a-z]”;
Pattern p=Pattern.compile(reg);
Matcher m=p.matcher(s);
\\m.find();m.group();方法与迭代器类似
java.util.regex -->类 Pattern/Matcher
P.S.:
单斜杠在正则表达式中是:\\\
双斜杠:\\\\
通配符.:\\.
将字符串中叠词换成单个:str=str.replaceAll(“(.)\\1+”,”$1”);
字符 | |
x | 字符 x |
\\ | 反斜线字符 |
\t | 制表符 ('\u0009') |
\n | 新行(换行)符 ('\u000A') |
\r | 回车符 ('\u000D') |
\f | 换页符 ('\u000C') |
字符类 | |
[abc] | a、b 或 c(简单类) |
[^abc] | 任何字符,除了 a、b 或 c(否定) |
[a-zA-Z] | a 到 z 或 A 到 Z,两头的字母包括在内(范围) |
[a-d[m-p]] | a 到 d 或 m 到 p:[a-dm-p](并集) |
[a-z&&[def]] | d、e 或 f(交集) |
[a-z&&[^bc]] | a 到 z,除了 b 和 c:[ad-z](减去) |
[a-z&&[^m-p]] | a 到 z,而非 m 到 p:[a-lq-z](减去) |
预定义字符类 | |
. | 任何字符(与行结束符可能匹配也可能不匹配) |
\d | 数字:[0-9] |
\D | 非数字: [^0-9] |
\s | 空白字符:[ \t\n\x0B\f\r] |
\S | 非空白字符:[^\s] |
\w | 单词字符:[a-zA-Z_0-9] |
\W | 非单词字符:[^\w] |
边界匹配器 | |
^ | 行的开头 |
$ | 行的结尾 |
\b | 单词边界 |
\B | 非单词边界 |
\A | 输入的开头 |
\G | 上一个匹配的结尾 |
\Z | 输入的结尾,仅用于最后的结束符(如果有的话) |
\z | 输入的结尾 |
Greedy 数量词 | |
X? | X,一次或一次也没有 |
X* | X,零次或多次 |
X+ | X,一次或多次 |
X{n} | X,恰好 n 次 |
X{n,} | X,至少 n 次 |
X{n,m} | X,至少 n 次,但是不超过 m 次 |
|
|
() 组对象
$ 组对象行号