正则表达式
2020-01-13 16:02:01来源:博客园 阅读 ()
正则表达式
简述
查询字符串时可能需要满足某些复杂规则,这时就可以使用正则表达式来定义这些复制规则。
基础语法
- 单个字符(数量:1)
- 字符:表示由一位字符所组成
- \\:表示转义字符”\“
- \t:表示一个制表符符号
- \n:匹配换行(\n)符号
- 字符集(数量:1)
- [abc]:表示可能是字符a或是字符b或是字符c中的任意一位
- [^abc]:表示不是字符a或是字符b或是字符c中的任意一位
- [a-z]:所有的小写字母
- [a-zA-Z]:字母中的任意一位
- [A-Z]:所有的大写字母
- [0-9]:表示任意一位数字(只有一位,则范围为0到9)
- 简化的字符集表达式(数量:1)
- . :表示任意的一位字符
- \d:等价于"[0-9]",属于简化写法,\需要转义
- \D:等价于"[^0-9]"
- \s:表示任意的空白字符,例如:"\t","\n"
- \S:表示任意的非空白字符
- \w:等价于"[a-zA-Z_0-9]",表示由任意的字母、数字、_ 所组成
- \W:等价于"[^a-zA-Z_0-9]",表示不是由任意的字母、数字、_ 所组成
- 边界匹配(不要在java使用,在javaScript使用)
- ^:正则的开始
- $:正则的结束
- 数量表达
- 正则表达式?:表示可以出现0次或1次
- 正则表达式+:表示出现1次或1次以上
- 正则表达式*:表示可以出现0次或1次或多次
- 正则表达式{n}:表示此正则正好出现n此
- 正则表达式{n,}:表示此正则出现n此以上(包含n次)
- 正则表达式{n,m}:表示次正则出现n到m次(包含n次和包含m次)
- 逻辑运算
- 正则表达式1正则表达式2:正则1判断完之后继续判断正则2
- 正则1|正则2:正则1或正则2有一组满足即可
- (正则):将多个正则作为一组,可以为这一组单独设置出现的次数
Java对正则表达式的支持
正则从JDK1.4引入的工具类,所有正则支持的类都在java.util.regex包中
java.util.regex主要有两个类:
- Pattern:此类对象如果要想取得必须使用compile()方法,功能是编译正则;
- Matcher:通过Pattern类的实例对象取得:matcher()
例子:Java中用正则表达式截取字符串中第一个出现的英文左括号之前的字符串。比如:北京市(海淀区)(朝阳区)(西城区),截取结果为:北京市。
代码:
String a = "北京市(海淀市)(朝阳区)(西城区)"; String regex = ".*?(?=\\()"; Pattern pattern = Pattern.compile(regex); Matcher matcher = pattern.matcher(a); if(matcher.find()){ System.out.println(matcher.group()); }
String类对正则表达式的支持
String类也可以对正则的操作,String中关于正则的方法:
- public boolean matches(String regex):正则验证,使用指定的字符串判断其是否符合给出的正则表达式结构
- public String replaceAll(String regex,String replacement):根据正则表达式匹配的字符串全部替换
- public String replaceFirst(String regex, String replacement):根据正则表达式匹配的字符串替换首个
- public String[] split(String regex):根据正则表达式匹配的字符串全部拆分
- public String[] split(String regex, int limit):根据正则表达式匹配的字符串部分拆分
原文链接:https://www.cnblogs.com/flunggg/p/12184653.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:dubbo的启动时检查
下一篇:dubbo的重试原则
- 学习笔记之Lambda表达式 2020-06-05
- JAVA8 Lambda表达式 2020-05-31
- Lambda表达式用法大比较: Scala和Java 8 2020-05-26
- java 8 stream、lambda表达式对list操作分组、过滤、求和、 2020-05-14
- JavaWeb 之 EL与JSTL 2020-05-06
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash