加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

深入入门正则表达式(java) - 3 - 正则在java中的使用

发布时间:2020-12-13 19:54:10 所属栏目:百科 来源:网络整理
导读:jdk版本选为1.6 1.5,1.4中的正则bug较多 我们先来总结一下java正则流派的特性,这里直接完全引用《精通正则表达式》中的表格 1.字符缩略表示法 a [b] e f n r t octal x## u#### cchar --- u####只运行4位16进制数字;octal要求开头是0,后面

jdk版本选为1.6

1.5,1.4中的正则bug较多



我们先来总结一下java正则流派的特性,这里直接完全引用《精通正则表达式》中的表格

1.字符缩略表示法

a [b] e f n r t octal x## u#### cchar --- u####只运行4位16进制数字;octal要求开头是0,后面接1至3为10进制数字;cchar是区分大小写的,直接对后面字符的十进制编码进行异或操作。

2.字符组及相关结构

字符组:[...],[^...],可包含运算符

几乎任何字符:点号(根据模式不同,含义不同)

字符组缩略表示法:w d s W D S --- w W只能识别ASCII字符

3.锚点及其他零长断言

行/字符串起始位置:^ A

行/字符串结束位置:$ z Z

当前匹配的起始位置:G

单词分解符:b B --- 能够识别Unicode字符

环视结构:(?=...) (?!...) (?<=...) (?<!...) --- 顺序环视结构中可以使用任意正则表达式,逆序环视中只能匹配长度有限的文本

4.注释及修饰模式

模式修饰符:(?mods-mods)允许出现的模式:x d s m i u

模式修饰范围:(?mods-mods:...)

注释:从#到行末(只有在启动时有效) --- 只有在使用/x修饰符或者Pattern.COMMENTS选项时,#才算注释。没有转移的ASCII空白字符将被忽略。字符组内部的注释和空白字符也会被忽略

文字文本模式:Q...E

5.分组及捕获

捕获型括号:(...) 1 2...

仅分组的括号:(?:...)

固化分组:(?>...)

多选结构:|

匹配优先量词:* + ? {n} {m,n} {m,}

忽略优先量词:*? +? ?? {n}? {n,}? {m,n}?

占有优先量词:*+ ++ ?+ {n}+ {n,}+ {m,n}+

ps:其中标注为蓝绿色的内容将在之后的教程讲解





下面开始介绍java中的正则api

首先看看正则的编译

Java代码

复制代码

收藏代码

  1. Pattern regex = Pattern.compile(".*?",Pattern.CASE_INSENSITIVE | Pattern.DOTALL);



正则的编译相对来说很耗时 ,所以要注意复用。

第一个参数是正则,第二个是编译选项,可以同时指定多个,当然,也可以像下面这样什么也不指定

Java代码

复制代码

收藏代码

  1. Pattern regex = Pattern.compile(".*?");

Matcher 我们把字符串传给matcher,然后设置各种条件,最后再用它干活

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读