既然谈到正则表达式,就不得不思考几个问题,正则表达式是什么,它存在的意义有哪些,以及它的实际应用有哪些,如此,才能真正理解并应用正则表达式。
一、正则表达式是什么
对于正则表达式,你可以把它看成是通配符的加强版,更通俗的来说呢,
就是你可以通过正则表达式去匹配指定规则的字符串,它可以用来检查一个串是否含有某种子串、或者将匹配的子串替换又或者从某个串中取出符合某个条件的子串等。
虽然正则表达式只有简简单单的几个字符,但是,它所能做的事情,远比你想的要多。
二、正则表达式存在的意义有哪些
从哲学的角度上来说,存在即合理,既然一个东西诞生了,而且在使用中没有被淘汰,那么这种东西必然是有其存在的价值的,
而对于正则表达式而言,其精炼的代码,强大的匹配功能,在计算机的领域应用广泛,
如编译器中的词法分析器,网页表单元素中检测用户输入的密码强度,以及爬虫的使用,无一不是利用到了正则表达式。下面,我们将通过java具体来阐述正则表达式的用法与注意事项。
三、正则表达式在java中的代码实现与具体应用
在java中,java提供了一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包:
java.util.regex
这个包内包含了三个类,分别为Pattern 类、Matcher 类与PatternSyntaxException类。
对于这三个类来说,各有自己存在的意义(下图摘自菜鸟教程)
一者进行编译表示,一者进行解释匹配,还有一者显示异常,
接下来我将通过一些代码来展示其中的语法使用:
import java.util.regex.*; //导入java库
class search{
public static void main(String[] args){
String content = "I love Java" ;
String pattern = ".*Java.*";
boolean isMatch = Pattern.matches(pattern, content);
System.out.println( isMatch);
}
}
输出结果为True,证明查找到了Java子字符串。
那对于一些特殊字符,例如转义字符又该如何输出,其中语法与c、python均相同,
如输出 \ 时为 \\等。
最后贴上正则表达式用法一览表(摘自菜鸟教程):