自学篇-正则表达式(七)
来源:互联网 发布:程序员相亲网站 编辑:程序博客网 时间:2024/06/16 03:46
正则表达式:符合一定规则的表达式
作用:用于黄钻梦操作字符。
特点:用一些特定的符号来表示一些代码操作。这样可以简化书写。
好处:可以简化对字符串的复杂操作。
具体操作功能:】
1,匹配:String matchs方法。用 规则匹配整个字符串,只要有一处不符合规则,就匹配结束就返回false。
String regex = "[bcd]" //表示这个字符串的第一个字符只能是b或c或d,有且只能有一个字符。
String regex = "[^bcd]" //表示除了bcd 取其他值都行。
String regex = "[a-zA-Z]" //表示去字母的值
..
2Greedy 数量词
? 表示 零次 或 一次
* 表示 零次 或 多次
+ 表示 一次 或 多次
{n} 表示 只有n次
{n,} 表示 至少有n次
{n,m} 表示至少有n次,但不能超过m次
2,切割:String split .
如 String s = "d:\\abc\\a.txt" , 以\\切割
String regex = "\\\\";
String [] arr = s.split(regex);
如 String s = "abc.bcd.dc";
String regex = "\\.";
String [] arr = s.split(regex);
如 String s = "asdfasdfjkjjjasdfasdfkklkadf"; 以叠词切割
String regex = "";
String regex="(.)\\1"; 首先把 .用()封装成组然后服用加上\1 正则表达式为(.)\1 封装成字符串 为"(.)\\1"
提问 ((())()) 这有几组? 我们看有几左括号,就有几组。 哪个是第一组,也看左括号。
3, 替换
String replace()
String regex = "\\.";
String [] arr = s.replace(regex , newstr);
如 String s = "dafsdfaddddddddddadfsdf"; 多个连词d 替换成一个d
String regex = "(.)\\1+" ;
s.replace(regex , "&1");
一些练习:
1.将连续出现的java用一个java代替。
public class Test {
public static void main(String[] args) {
String str = "ibmsunjavajavaoraclejavajavajavamicrosoftjava";
System.out.println(replace(str, "java"));
}
/**
* @param input 原始的字符串
* @param replacement 重复出现的字符串
* @return 替换后的字符串
*/
public static String replace(String input, String replacement) {
return input.replaceAll("(" + replacement + ")+", replacement);
}
}
2.验证是否为邮箱地址
Java代码 收藏代码
import java.util.regex.Pattern;
public class Test {
public static void main(String[] args) {
String str = "sxpujs@163.com";
System.out.println(checkEmail(str));
}
public static boolean checkEmail(String input) {
return Pattern.matches("[\\w\\.\\-]+@([\\w\\-]+\\.)+[\\w\\-]+", input);
}
}
3.查找以Java,任意结尾的字符串
Java代码 收藏代码
public static boolean checkJava(String input) {
return Pattern.matches("^java.*", input);
}
4.截取http://地址
Java代码 收藏代码
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test {
public static void main(String[] args) {
String str = "dsdsds<http://127.0.0.1:8080/index.jsp>fdfhttp://www.g.cn;;;;;";
System.out.println(splitUrl(str));
}
public static String splitUrl(String input) {
Pattern pattern = Pattern
.compile("(http://|https://){1}[\\w\\.\\-/:]+");
Matcher matcher = pattern
.matcher(input);
StringBuffer buffer = new StringBuffer();
while (matcher.find()) {
buffer.append(matcher.group());
buffer.append("\r\n");
}
return buffer.toString();
}
}
5.满足1到35之间的正整数
Java代码 收藏代码
import java.util.regex.Pattern;
public class Test {
public static void main(String[] args) {
for (int i = 0; i < 50; i++) {
System.out.println(i+":"+checkNumber(i+""));
}
}
public static boolean checkNumber(String input){
// 取1到35之间的数,排除以0开头的数,且不包括0
String regex = "[1-9]{1}|[1-2]{1}\\d{1}|3[0-5]{1}";
return Pattern.matches(regex, input);
}
}
- 自学篇-正则表达式(七)
- 正则表达式规则(七)
- 正则表达式 自学
- 自学php-正则表达式
- MySQL自学篇(七)
- 正则表达式学习(七)重复匹配
- javaScript笔记 (七) 正则表达式
- 正则表达式-嵌入条件(七)
- (七)php参考手册---正则表达式
- 正则表达式使用指南七
- 自学笔记:正则表达式入门
- Html,JavaScript,正则表达式(reg express) 自学笔记
- 黑马程序员——自学总结(九)正则表达式
- 自学Python之Python基础:(八)正则表达式
- 正则表达式用法总结----七
- Java--正则表达式总结(七)
- java 自学日志【十七】---正则表达式
- 自学php-POSIX扩展正则表达式函数
- 纹理
- 如何用JSON读写XML文件
- 级联菜单的制作问题
- oracle11g学习笔记(五)
- shell程序设计001
- 自学篇-正则表达式(七)
- 前台显示后台数据
- Ubuntu10.10 CAJView安装 读取nh\kdh\caj文件 成功
- 我的第一次编写菜单应用程序
- 学习笔记:简单工厂模式
- ARM指令集详解
- python MySQLdb在windows环境下的快速安装、问题解决方式
- ASP.NET(C#)发送电子邮件的方法
- ContentProvider, ContentResolver,Sqlite的关系