正则表达式:其实就是用来简化字符串的操作。
通过一些限定符号组成一种规则,来验证字符串是否符合规则 结论:正则表达式只能使用在字符串上 学习正则表达式,其实就是要学习正则规则中的各种限定符号 正则表达式中的各种符号: 一般符号: x 表示任何字符 例:”NBA” 正则:“N[A-Z]” \\ 表示反斜线 例:“\\” 在正则中就是“\” \t 制表符 字符符号: [ ]表示范围的意思 [abc] 表示要么是a要么是b还可以是c(只能是其中任意一个) 例:”NBA” 正则:”N[ABC]A” 匹配正确:NBA NAA NCA [^ab] 表示不能是a或b(除了a,b都可以) [a-z] 表示26个小写字母 [A-Z] 表示26个大写字母 [a-zA-Z] 表示26个大小写字母 [a-d[x-z]] 表示可以是a~d之间或x-z之间的任意字符 [a-d&&[d-f]]表示只能是d。必须在两个范围中都要符合 。(交集) [a-d&&[^d-f]] 表示只能是a,b,c。 [a-z&&[^xyz]]表示只能是除去x,y,z后的所有小写字母 [0-9] 表示0~9之间任意数字 预定义字符: . 点在正则中可以表示任意的符号 例:以a开对后面可以是任意字符 “a.” \d 表示数字。[0-9] 例:“A[\\d]C” 表示A和C之间可以任意的0~9之间的数字 \D 表示非数字。[^0-9] \w 表示[0-9A-Za-z_]。可以是任意数字、任意大小写字母、下划线 \W 表示[^0-9A-Za-z_] 边界符: ^ 表示行的开头 例:“^h.” 表示只能是以h作为开头 $ 表示行的结尾 例:”^h.o$” 表示只能以h作为开头,以o作来结尾 数量词: 注意:数量词前面必须有存在正则符号 ? 表示数量词?前面的正则符号可以有0次或1次 * 表示数量词*前面的正则符号可以出现0次或多次 + 表示数量词+前面的正则符号可以出现1次或多次 {n} 表示数量词{n}前面的正则符号必须出现n次 {n,} 表示数量词{n,}前面的正则符号至少出现n次 {n,m} 表示数量词{n,m}前面的正则符号至少出现n次,但不能超过m次
正则的功能介绍
在正则表达式中,正则存在4种功能:匹配、切割、替换、获取 正则表达式就是用某种模式去匹配一类字符串的公式,主要用来描述字符串匹配的工具。
正则表达式描述了一种字符串匹配的模式。它可以用来检查字符串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。
正则表达式是由普通字符(如字符a到z)以及特殊字符(称为元字符)组成的文字模式。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。
正则表达式就是用于描述某些规则的工具。这些规则经常用于处理字符串中的查找或替换字符串。换句话说,正则表达式就是记录文本规则的代码。
正则表达式的应用非常广泛,特别是在字符串处理方面。目前来说,正则表达式已经在很多软件中得到广泛了应用,如Linux、Unix、HP等操作系统,C#、PHP、Java等程序开发环境,以及很多的应用软件中,都可以看到正则表达式的这样或那样的应用。正则表达式常见的应用如下:
验证字符串,即验证给定的字符串或子字符串是否符合指定特征,譬如验证是否是合法的邮件地址、验证是否为合法的HTTP地址等。
查找字符串,从给定的文本中查找符合指定特征的字符串,比查找固定字符串更加灵活方便。
替换字符串,即把给定的字符串中的符合指定特征的子字符串替换为其他字符串,比普通的替换更强大。
提取字符串,即从给定的字符串中提取符合指定特征的子字符串。
在java中使用String对象中的matches方法用来匹配正则规则。返回值为boolean 在一个正则表达中,后面的正则想要去使用前面已经存在的正则规则时,就必须把前面的正则规则包装起来,而后面的正则就可以去引用前面已经包装的正则规则了 正则怎么样进行封装(包装)呢? 在正则表达式中使用小括号”()”把前面已经存在的正则规则进行封装。 被”()”包含的内容,称为正则中的组。正则中的组都具有一个编号,称为组号 后面书写的正则怎么使用前面已经封装过的正则规则呢? 后面的正则中使用组的编号(组号)来引用前面已经存在的规则。使用\\组号引用 例:((a)((bc)d)) 组的是使用()包含起来,从前向后每一个()就表示一个组,都具有一个组号 第一组:((a)((bc)d)) 组号:1 第二组:(a) 组号:2 第三组:((bc)d) 组号:3 第四组:(bc) 组号:4 使用组号来引用封装的正则规则。使用\\组号 的方式引用前面存在的正则规则 正则的获取功能
正则表达式是在java中存在的一种规则,而java语言对于存在的事物,都会使用类来描述。在java.util.regex包中存在一个用来描述正则表达式的类 通过查阅API,可以获得: 1, Pattern类是java中正则表达式的实例对象 2, Pattern类是最终的类,不能被继承 3, 先要有Pattern类的实例(正则表达式的实例对象),通实例对象创建匹配器对象(Matcher类),最后是使用匹配器对象中的matches方法来对正则进行验证 4, Pattern类没有构造函数。需要使用compile()方法获取Pattern类实例
|