网站产品的详情页怎么做,地方门户网站开发,个人网站 程序,找公司做网站运营怎么样正则表达式(JAVA) 文章目录 正则表达式(JAVA)用法字符类(只匹配一个字符)预定义字符(只匹配一个字符)数量词贪婪爬取符号捕获分组规则捕获分组符号 非捕获分组案例忽略大小写 用法 正则表达式在用于校验信息是否满足某些规则的时候,非常的好用 在文本中查找满足要求的内容
字…正则表达式(JAVA) 文章目录 正则表达式(JAVA)用法字符类(只匹配一个字符)预定义字符(只匹配一个字符)数量词贪婪爬取符号捕获分组规则捕获分组符号 非捕获分组案例忽略大小写 用法 正则表达式在用于校验信息是否满足某些规则的时候,非常的好用 在文本中查找满足要求的内容
字符类(只匹配一个字符)
符号作用补充[abc]只能是a,b或c匹配的一个字符只能是[]范围内的其中一个[^abc]除了a,b,c之外的任何字符^符号类似非[a-zA-Z]a到z A到Z ,包括范围-作用是由…到… ,两个或多个范围之间不需要任何符号[a-d[m-p]]a到d,或m到p两个[]之间嵌套表示字符为其中之一[a-z[def]]a-z和def的交集为交集符号,匹配的字符是交集范围内容[a-z[^bc]]a-z和非bc的交集和上一个基本一致 [a-z[ ^m-p]]a-z和除了m到p的交集存在运算优先级
单个字符匹配JAVA方法: 单个字符.matches(正则表达式) 返回值是布尔类型
预定义字符(只匹配一个字符)
符号作用补充.匹配 任何字符\d匹配 一个数字\D匹配 非数字\s匹配 空白字符 ([\t\n\x0B\f\r])\w匹配 [a-zA-Z_0-9] 英文,数字,下划线\W匹配 [ ^\w] 一个非 英文,数字,下划线 字符 java中的\表示转义字符 java匹配预定义字符需要进行转移 PS: a.matches(\\d)
数量词
说明: X代表任意字符可以配合上面的内容实现多符号匹配
符号作用补充X?X 出现 一次或0次X*X 出现 零次或多次XX 出现 一次或多次X{n}X 出现 正好n次{}代表出现的次数X{n, }X 出现 至少n次X{n,m}X 出现 至少n次但不超过m次
PS: 23dF.matches([\\w[^_]]{4})解析: 字符在\\w去除_的条件下,出现4次,所以结果是true
贪婪爬取
贪婪爬取: 在爬取数据的时候尽可能多得获取数据 符号: ,*PS: ab 非贪婪爬取: 在爬取数据时尽可能少的获取数据 符号: ?,*?PS:ab*?
符号
符号作用相交\转义字符()分组[]范围{}次数
捕获分组
规则
规则1: 从1开始规则2: 以左括号为基准,最左边的是第一组,其次是第二组,依次类推PS: (\\d(\\d)\\d)
捕获分组
在某些情况下我们并不知道一个统一的标准,只知道一些要求时,需要使用捕获分组,也就是通过捕获某一组的数据,然后再使用PS : 判断一个字符串的开始字符和结束字符是否一致举例: a123a ---- Java正则表达式(.).\\1解释: 后面的\\1的意思是拿到第一组的数据复用,这里的1代指第一组理解: (.)每一个.直到获取的数据和原来不是同一类型会自动结束
符号
\\ : 内部$: 外部
非捕获分组
符号作用(?:正则)获取所有(?正则)获取前面部分(?!正则)获取不是指定内容的前面部分
含义: 分组之后不需要再用本组数据,仅仅是把数据括起来,括起来的表达式不在占用组号更多会使用第一个
案例
忽略大小写
PS: (?i)字符表示对后面的字符忽略大小写System.*out*.println(aB.matches((?i)ab));----true(?i)后面的字符才忽略大小写