java中使用正则表达式

转自:

java中使用正则表达式

计算机专业毕业或者使用过Unix、Perl等产品的读者一定对正则表达式有一定的印象,即使没有接触过正则表达式也不要被它的外貌所吓倒。虽然做到精通正则表达式比较难,但是能够掌握它的基本应用却是非常容易的,一旦把正则表达式应用于实际问题的解决就可以非常明显的提高工作效率。

正则表达式最早是由数学家Stephen Kleene在对自然语言的递增研究成果的基础上提出来的,具有完整语法的正则表达式使用在字符的格式匹配方面上。正则表达式是一种描述文字模式的方法,包括重复出现、不同选择方式以及为某些字符(比如数字、字母)而提供的缩写形式。我们经常会碰到甚至用到它,在Windows的搜索界面中输入“*.txt”就可以搜索到所有的文本文件,在DOS提示符下输入“Dir *.exe”就可以显示出当前路径下所有的可执行文件,在数据库中检索所有名称中含有“tom”的记录就可以执行如下SQL:“select * from T_Table where FName like ‘%tom%’”,这些“*.txt”、“%tom%”就是一种模式,这些模式将会与一些文本相匹配。

为什么要用正则表达式

你一定做过字符串解析的工作吧,那么让我们再来重温一下噩梦!

【噩梦1】“192.168.10.5[port=8080]”,这个字符串表示IP地址为192.168.10.5的服务器的8080端口是打开的,请用程序解析此字符串,然后打印出“IP地址为***的服务器的***端口是打开的”。

代码 1.1 普通方法进行IP地址字符串解析

String text = "192.168.10.5[port=8080]";

int leftBraceIndex = text.indexOf('[');

String ipAddr = text.substring(0,leftBraceIndex);

int equalsIndex = text.indexOf('=');

String port = text.substring(equalsIndex+1,text.length()-1);

System.out.println("IP地址为"+ipAddr+"的服务器的"+port+"端口是打开的");

好在字符串格式不复杂,这么简单的任务还是能轻松搞定的。

【噩梦2】 “192.168.10.5[port=21,type=ftp]”,这个字符串表示IP地址为192.168.10.5的服务器的21端口提供的是ftp服务,其中如果“,type=ftp”部分被省略,则默认为http服务。请用程序解析此字符串,然后打�

相关文档:

1.1 不用new关键词创建类的实例

用new关键词创建类的实例时,构造函数链中的所有构造函数都会被自动调用。但如果一个对象实现了Cloneable接口,我们可以调用它的clone()方法。clone()方法不会调用任何类构造函数。

在使用设计模式(Design Pattern)的场合,如果用Factory模式创建对象,则改用clone()方法创建新� ......

package com.chinacache.utils;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.apache.log4j.Logger;
public class FileUtils {
private static final Logger logger = Logger.getLogger(FileUtils.class);
/**

* 移动文件到指定目 ......

日常操作中常见的排序方法有:冒泡排序、快速排序、选择排序、插入排序、希尔排序,甚至还有基数排序、鸡尾酒排序、桶排序、鸽巢排序、归并排序等。

冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交 ......

插入排序的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。其具体步骤参见代码及注释。

view plaincopy to clipboardprint?
/**
* 插入排序
* 
* 
从第一个元素开始,该元素可以认为已经被排序 ......