JAVA 正则表达式4种常用的功能
正则表达式在字符串处理上有着强大的功能,sun在jdk1.4加入了对它的支持
下面简单的说下它的4种常用功能:
查询:
以下是代码片段:
String str="abc efg ABC";
String regEx="a|f"; //表示a或f
Pattern p=Pattern.compile(regEx);
Matcher m=p.matcher(str);
boolean rs=m.find();
如果str中有regEx,那么rs为true,否则为flase。如果想在查找时忽略大小写,则可以写成Pattern p=Pattern.compile(regEx,Pattern.CASE_INSENSITIVE);
提取:
以下是代码片段:
String regEx=".+\(.+)$";
String str="c:\dir1\dir2\name.txt";
Pattern p=Pattern.compile(regEx);
Matcher m=p.matcher(str);
boolean rs=m.find();
for(int i=1;i<=m.groupCount();i++){
System.out.println(m.group(i));
}
以上的执行结果为name.txt,提取的字符串储存在m.group(i)中,其中i最大值为m.groupCount();
分割:
以下是代码片段:
String regEx="::";
Pattern p=Pattern.compile(regEx);
String[] r=p.split("xd::abc::cde");
执行后,r就是{"xd","abc","cde"},其实分割时还有跟简单的方法:
String str="xd::abc::cde";
String[] r=str.split("::");
替换(删除):
以下是代码片段:
String regEx="a+"; //表示一个或多个a
Pattern p=Pattern.compile(regEx);
Matcher m=p.matcher("aaabbced a ccdeaa");
String s=m.replaceAll("A");
结果为"Abbced A ccdeA"
如果写成空串,既可达到删除的功能,比如:
String s=m.replaceAll("");
结果为"bbced ccde"
匹配HTML
1. <([^ >])+[^>]*>(?:[\S\s]*?<\/\1>)?
2. <\s*(\S+)(\s[^>]*)?>[\s\S]*<\s*\/\1\s*>
3. <(S*?)[^>]*>.*?|<.*? />
附:
\d 等於 [^0-9] 数字
\D 等於 [^0-9] 非数字
\s 等於 [ \t\n\r\f ] 空白字元
\S 等於 [^ \t\n\r\f ] 非空白字元
\w 等於 [a-zA-Z_0-9] 数字或是英文字
\W 等於 [^a-zA-Z_0-9] 非数字与英文字
^ 表示每行的开头
$ 表示每行的结尾
相关文档:
Web开发中经常用到的一些名词,按同功能类型的进行分组:
1.标签:WebWork标签、JSTL、JSP标签
2.AOP 拦截器 过滤器 监听器 校验器
3.面向接口 面向切面 控制反转 依赖注入
4.单态模式 DAO模式 装饰模式
5.缓存:数据缓存 服务器端缓存 客户端缓存
6.ORM EJB[三种Bean]
7.JMS
8.MVC开发模式
9.W ......
Java Learning Path (一)、工具篇
一、 JDK (Java Development Kit)
JDK是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具和Java基础的类库(rt.jar)。不论什么Java应用服务器实质都是内置了某个版本的JDK。因此掌握JDK是学好Java的第一步。最主流的JDK是Sun公司发布的JDK,除了Sun之外, ......
由于Flex Builder compiler shell有memory leak的问题, 而SDK默认的的 JVM heap size 只有312M,当compile比较大的project容易不够,所以只要修改SDK的JVM参数就可以。
编辑 {Flex SDK}/bin/jvm.config 文件如下。
java.args=-Xmx512m ...
如果还是有Error,可以增加到1024或者更多。 ......
在使用RegularExpressionValidator验证控件时的验证功能及其验证表达式介绍如下:
只能输入数字:“^[0-9]*$”
只能输入n位的数字:“^d{n}$”
只能输入至少n位数字:“^d{n,}$”
只能输入m-n位的数字:“^d{m,n}$”
只能输入零和非零开头的数字:“^(0|[1- ......
import java.util.Date;
class Dog{
private String name;
private Date birthday;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Date getBirthday() {
return b ......