Java简单的正则表达式匹配操作
简单地利用正则表达式进行匹配操作
要明确,正则表达式是用来方便地匹配字符串的
1. 首先要创建一个匹配模式
一个匹配模式就是一个对象,这个对象由Pattern类来帮我们造要注意Pattern的构造方法是私有的,所以没办法直接new,但是可以通过它的一个静态方法compile()来创建。
Pattern里还有一个matcher方法,返回一个Matcher的对象,该方法的参数是一个你想匹配的那个字符串。详细见下文Matcher。
创建一个匹配数字字符的模式:
Pattern pattern = Pattern.compile("\d+");//创建匹配数字字符的模式
匹配模式的意思就是一个模板,用几个符号表示你想匹配的东西,就叫做匹配模式。 例如: \d+,代表匹配一个或多个字符,其中‘d’代表匹配数字,等效于[0-9]。 反斜杠用来转义,因为d本身有特殊的含义,所以让最前面 的那个反斜杠将第二个反斜杠变为一个字符,这样就可以使d是一个符号了 ’+‘代表匹配前面的字符或子表达式一次或多次,比如:"wsx+"可以和 "wsxw"、"wsx"、"swsxx"等等匹配,不可以和"ws"、"sxw"等等匹配
2. 接下来就是选择匹配的对象(字符串)
我们会用到工具类Matcher,中文就是匹配的意思。 Matcher的一个实例代表一个用来操作匹配字符串的对象。 Matcher常用的方法有find()、start()、end() <1> find()用于查找是否有想找的那个字符,有的话返回true <2> start()返回上一个匹配项的起始索引 <3> end()返回上一个匹配项的末尾索引 这三种方法可以与循环结合起来,没有匹配的话它会自动迭代,继续往下找, 直至匹配结束。
3. 接下来就是去执行匹配操作
由于find()返回一个布尔值,所以我们可以把它直接当作while的条件。
下面是一个从字符串中获得数字的一个实例:
String str = "cheems123cheems456cheems789";
//1.创建匹配模式
Pattern pattern = Pattern.compile("\d+");//匹配一个或多个数字字符
//2.选择匹配对象
Matcher matcher = pattern.matcher(str);
//与谁匹配?与参数字符串str匹配
int count = 0;
while (matcher.find())//matcher.find()用于查找是否有这个字符,有的话返回true
{
System.out.println("第" + (++count) + "次找到");
//start()返回上一个匹配项的起始索引
//end()返回上一个匹配项的末尾索引。
System.out.println(str.substring(matcher.start(),matcher.end()));
}
结果:
由于是初学者,如有错误请大力指出,我一定虚心接受
参考:
