黑马程序员——java基础——正则表达式
2015-08-29 22:37
519 查看
------- Android培训、java培训、期待与您交流!
----------
1:正则表达式
(1)就是符合一定规则的字符串
(2)常见规则
A:字符
x 字符 x。举例:'a'表示字符a
\\ 反斜线字符。
\n 新行(换行)符 ('\u000A')
\r 回车符 ('\u000D')
B:字符类
[abc] a、b 或 c(简单类)
[^abc] 任何字符,除了 a、b 或 c(否定)
[a-zA-Z] a到 z 或 A到Z,两头的字母包括在内(范围)
[0-9] 0到9的字符都包括
C:预定义字符类
. 任何字符。我的就是.字符本身,怎么表示呢? \.
\d 数字:[0-9]
\w 单词字符:[a-zA-Z_0-9]
在正则表达式里面组成单词的东西必须有这些东西组成
D:边界匹配器
^ 行的开头
$ 行的结尾
\b 单词边界
E:Greedy 数量词
X? X,一次或一次也没有
X* X,零次或多次
X+ X,一次或多次
X{n} X,恰好 n 次
X{n,} X,至少 n 次
X{n,m} X,至少 n 次,但是不超过 m 次
(3)常见功能:
A:判断功能
String类的public boolean matches(String regex)
// 创建键盘录入对象
Scanner sc =new Scanner(System.in);
System.out.println("请输入你的QQ号码:");
String qq =sc.nextLine();
System.out.println("checkQQ:"+ qq.matches("[1-9]\\d{4,14}"));
B:分割功能
String类的public String[] split(String regex)
// 定义一个字符串
String s1 = "aa,bb,cc";
// 直接分割
String[] str1Array =s1.split(",");
for (int x = 0; x < str1Array.length;x++) {
System.out.println(str1Array[x]);
}
C:替换功能
String类的public String replaceAll(String regex,String replacement)
// 我要去除所有的数字,用*给替换掉
// 定义一个字符串
String s ="helloqq12345worldkh622112345678java";
// 直接把数字干掉
String regex= "\\d+";
String ss ="*";
String result= s.replaceAll(regex, ss);
System.out.println(result);
D:获取功能
Pattern和Matcher
Pattern p =Pattern.compile("a*b");
Matcher m =p.matcher("aaaaab");
find():查找存不存在
group():获取刚才查找过的数据
获取下面这个字符串中由三个字符组成的单词
Jin tian tianqi bu cuo , Wo yao xue xi java !
// 定义字符串
String s =" Jin tian tian qi bu cuo , Wo yao xue xi java !";
// 规则
String regex= "\\b\\w{3}\\b";
// 把规则编译成模式对象
Patternp = Pattern.compile(regex);
// 通过模式对象得到匹配器对象
Matcherm = p.matcher(s);
while(m.find()) {
System.out.println(m.group());
}
----------
1:正则表达式
(1)就是符合一定规则的字符串
(2)常见规则
A:字符
x 字符 x。举例:'a'表示字符a
\\ 反斜线字符。
\n 新行(换行)符 ('\u000A')
\r 回车符 ('\u000D')
B:字符类
[abc] a、b 或 c(简单类)
[^abc] 任何字符,除了 a、b 或 c(否定)
[a-zA-Z] a到 z 或 A到Z,两头的字母包括在内(范围)
[0-9] 0到9的字符都包括
C:预定义字符类
. 任何字符。我的就是.字符本身,怎么表示呢? \.
\d 数字:[0-9]
\w 单词字符:[a-zA-Z_0-9]
在正则表达式里面组成单词的东西必须有这些东西组成
D:边界匹配器
^ 行的开头
$ 行的结尾
\b 单词边界
E:Greedy 数量词
X? X,一次或一次也没有
X* X,零次或多次
X+ X,一次或多次
X{n} X,恰好 n 次
X{n,} X,至少 n 次
X{n,m} X,至少 n 次,但是不超过 m 次
(3)常见功能:
A:判断功能
String类的public boolean matches(String regex)
// 创建键盘录入对象
Scanner sc =new Scanner(System.in);
System.out.println("请输入你的QQ号码:");
String qq =sc.nextLine();
System.out.println("checkQQ:"+ qq.matches("[1-9]\\d{4,14}"));
B:分割功能
String类的public String[] split(String regex)
// 定义一个字符串
String s1 = "aa,bb,cc";
// 直接分割
String[] str1Array =s1.split(",");
for (int x = 0; x < str1Array.length;x++) {
System.out.println(str1Array[x]);
}
C:替换功能
String类的public String replaceAll(String regex,String replacement)
// 我要去除所有的数字,用*给替换掉
// 定义一个字符串
String s ="helloqq12345worldkh622112345678java";
// 直接把数字干掉
String regex= "\\d+";
String ss ="*";
String result= s.replaceAll(regex, ss);
System.out.println(result);
D:获取功能
Pattern和Matcher
Pattern p =Pattern.compile("a*b");
Matcher m =p.matcher("aaaaab");
find():查找存不存在
group():获取刚才查找过的数据
获取下面这个字符串中由三个字符组成的单词
Jin tian tianqi bu cuo , Wo yao xue xi java !
// 定义字符串
String s =" Jin tian tian qi bu cuo , Wo yao xue xi java !";
// 规则
String regex= "\\b\\w{3}\\b";
// 把规则编译成模式对象
Patternp = Pattern.compile(regex);
// 通过模式对象得到匹配器对象
Matcherm = p.matcher(s);
while(m.find()) {
System.out.println(m.group());
}
相关文章推荐
- 腾讯 程序员 Java 笔试题目
- 各大公司笔试面试题目
- Android程序员必备精品资源 工具类
- Java面试题笔试题:
- JSP面试问题集
- JAVA程序员面试题
- Servlet面试题
- 半路程序员
- J2EE面试题集
- 剑指Offer面试题:15.反转链表
- 面试题26.复杂链表的复制
- 面试知识总结
- 【面试ing】腾讯模拟笔试
- lintCode-给出若干闭合区间,合并所有重叠的部分。
- 黑马程序员——33集合
- 剑指offer-第六章面试中的各项能力(二叉树的深度)
- 剑指offer-第六章面试中的各项能力(二叉树的深度)
- 求职就业
- 黑马程序员--Java反射
- 黑马程序员—————Java基础--------IO流(二)