正則表達式基础及java使用
正則表達式基础
正則表達式语法(1)
普通字符:字母,数字。汉子,下划线以及没有特殊定义的标点符号都是“普通字符”。表达式中的普通字符。在匹配一个字符串的时候,匹配与之同样的一个字符
- 简单的转义字符:
\n :代表换行符
\t :代表制表符
\\ :代表\本身
\^ ...... :代表匹配这字符本身
正則表達式语法(2)
- 标准字符集合:
可以与多种字符匹配的表达式
注意区分大写和小写,大写是相反的意思
\d :随意一个数字,0~9中的随意一个
\w:随意一个字母或者下划线或者汉字。也就是A~Z,a~z,0~9中的随意一个
\s :包含空格,制表符。换行符等空白符中的随意一个。
. :小数点能够匹配随意一个字符
正則表達式语法(3)
- 自己定义字符集合:
[ ]方括号匹配方式。可以匹配方括号里随意一个字符
[ab5@]: 匹配方括号里的随意一个字符
[^abc]: 匹配除了abc以外的随意一个字符
[f-k]: 匹配“f”-“k”之间的随意一个字符
[^A-F0-3]: 匹配非A-F和非0-3的随意一个字符
正則表達式语法(4)
- 修饰匹配次数的特殊符号
{n}: 表达式反复n次
{m,n}: 表达式至少反复m次。最多反复n次
{m,}: 表达式至少反复m次
?: 匹配表达式0次或者1次。相当于{0,1}
+ : 表达式至少出现1次。相当于{1,}
* : 表达式不出现或者出现随意次,相当于{0,}
匹配次数中的贪婪模式,(匹配字符愈多愈好。默认)
匹配次数中的非贪婪模式(匹配字符越少越好。修饰匹配次数的特殊符号后再加上一个“?“号)。样例:\d{2,4}?,这样就将模式改为非贪婪
正則表達式语法(5)
- 字符边界(本组标记匹配的不是字符而是位置,符合某种条件的位置)
^: 与字符串開始的位置匹配(以一行来算)
$: 与字符串结束的地方匹配
\b: 匹配单词边界 //比方boy\b 则在boy右边不是边界的不匹配
在java中使用正則表達式及经常使用函数
public class TestRegex {
public static void main(String []args)
{
//Pattern p = Pattern.compile("^\\d{4}"); //在java中的反斜杠要用两个前面一个转义,由于\d中的\做反义用
Pattern p = Pattern.compile("(\\d{4})([a-z]{2})");
Matcher m = p.matcher("asdfsadfsafd2342314asdfsadf2342asdfsaf");
System.out.println(m.matches()); //匹配整个目标字符串
System.out.println(m.find()); //查找字符串
List<String> list = new ArrayList<String>(); //用来存储找到的group
while(m.find()) //m.find()找到一个后就去找下一个了
{
System.out.println(m.group()); //group(),group(0)的作用是一样的
System.out.println(m.group(0));
System.out.println(m.group(1));
System.out.println(m.group(2)); //假设写3的话会超出范围
list.add(m.group());
}
String []str = "aa33fdf55cc".split("\\d{2}"); //依照两个整数来切分
String str2 ="asd2dsfdfds".replaceAll("\\ds", "**"); //将ds替换掉,生成新的字符串。由于前面是常量不可变
System.out.println("asdfsdf".matches("\\w+")); //匹配字符串
}
}
正則表達式基础及java使用的更多相关文章
- 深入浅出理解iOS经常使用的正則表達式—基础篇[Foundation]
參考资料:cocoachina的zys475481075的文章 几个单词 Regular ['regjʊlə]adj. 定期的:有规律的 Expression[ɪk'spreʃ(ə)n; ek-] n ...
- apache rewrite 正則表達式基础
用了好几次rewrite,用的次数不是非常多,每次都忘,都得又一次上网上找一堆现看,总结一下,以免以后忘了 =====================分隔符===================== ...
- JAVA中正則表達式总结
昨天,我的朋友请教我正則表達式.我也好久没有写过正則表達式了,昨天刚好看了下如鹏网创始人杨中科老师关于正則表達式的解说.使我加深了正則表達式的印像.现我把他总结下: 很多语言,包含Perl.PHP.P ...
- JAVA中正則表達式总结(具体解释及用途)
很多语言,包含Perl.PHP.Python.JavaScript和JScript,都支持用正則表達式处理文本,一些文本编辑器用正則表達式实现高级"搜索-替换"功能.所以JAVA语 ...
- python进阶十_正則表達式(一)
近期状态一直不太好,至于原因,怎么说呢,不好说,总之就是纠结中覆盖着纠结,心思全然不在点上,希望能够借助Python的学习以及博客的撰写来调整回来,有的时候回头想一想,假设真的是我自己的问题呢,曾经我 ...
- Python——正則表達式(2)
本文译自官方文档:Regular Expression HOWTO 參考文章:Python--正則表達式(1) 全文下载 :Python正則表達式基础 ======================== ...
- 使用正則表達式的格式化与高亮显示json字符串
使用正則表達式的格式化与高亮显示json字符串 json字符串非常实用,有时候一些后台接口返回的信息是字符串格式的,可读性非常差,这个时候要是有个能够格式化并高亮显示json串的方法那就好多了,以下看 ...
- hive正則表達式
hive中实现正則表達式,与java中的正則表達式有所差别: 这里经过探索总结了一些: hive中的正则能够用,可是有所差别,差别在于原来的'\' 转义,这里变成了双斜杠了'\\' hive中的正则解 ...
- JavaScript正則表達式知识汇总
Js 正則表達式知识汇总 正則表達式: 1.什么是RegExp?RegExp是正則表達式的缩写.RegExp 对象用于规定在文本中检索的内容. 2.定义RegExp:var +变量名=new RegE ...
随机推荐
- android通用JSON解析
ackage cn.com.pcgroup.<a href="http://lib.csdn.net/base/15" class="replace_word&qu ...
- 【软件project】机房收费系统之图形回想
[背景]通过一阶段的学习.自己整理了整理机房收费系统.以下想通过几张图来回顾一下机房的总体流程.此图形仅仅代表鄙人现阶段的理解.本文仅供參考,若有不妥的地方,请积极指正. 1.机房收费系统业务流程图 ...
- robot framework 使用三:浏览器兼容性自己主动化
robot framework 測试浏览器兼容性 上图中黄色圈的地方默认什么都不写.是firefox浏览器,写上ie就是ie浏览器了 firefox最新版本号即可.ie须要设置: 1. IE选项设置的 ...
- ubuntu-安装中文拼音输入法
一下内容转载自http://blog.chinaunix.net/uid-24410388-id-3501873.html 自己验证了可用.转载了,已留做日后使用 步骤: step1:安装ibus所需 ...
- 6.在单机上实现ZooKeeper伪机群/伪集群部署
转自:https://blog.csdn.net/poechant/article/details/6633923
- ASP.NET MVC案例教程(基于ASP.NET MVC beta)——第六篇:拦截器
摘要 本文将对“MVC公告发布系统”的发布公告功能添加日志功能和异常处理功能,借此来讨论ASP.NET MVC中拦截器的使用方法. 一个小难题 我们继续完善“MVC公告发布系统”, ...
- oracle里long类型的总结
转自原文oracle中long类型为什么不推荐使用 不是不推荐使用的,是一般用不到,而有些时候是会用到的,所以不能一概而论.1.LONG 数据类型中存储的是可变长字符串,最大长度限制是2GB.2.对于 ...
- 14. Spring Boot MyBatis 连接数据库
转自:https://blog.csdn.net/catoop/article/details/50553714
- Spring-data-redis:特性与实例--转载
原文地址:http://shift-alt-ctrl.iteye.com/blog/1886831 Spring-data-redis为spring-data模块中对redis的支持部分,简称为“SD ...
- JS学习笔记 - 自定义右键菜单、文本框只能输入数字
<script> // 事件总共有2个部分, //1.点击鼠标右键的表现 oncontextmenu 2.点击鼠标左键的表现(即普通点击onclick) // 点击右键,div位置定位到鼠 ...