正則表達式基础及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 ...
随机推荐
- 洛谷——P1816 忠诚
https://www.luogu.org/problem/show?pid=1816#sub 题目描述 老管家是一个聪明能干的人.他为财主工作了整整10年,财主为了让自已账目更加清楚.要求管家每天记 ...
- 基于Eclipse的Android JNI层測试应用开发过程记录
前言 本文记录一个Java层与JNI层參数与数据交互的应用程序开发过程.为实现一个功能完整的带Java与JNI的应用程序打下基础. 本文如果读者已搭建好Android的Eclipse与NDK开发环境, ...
- 1.1 Introduction中 Kafka as a Storage System官网剖析(博主推荐)
不多说,直接上干货! 一切来源于官网 http://kafka.apache.org/documentation/ Kafka as a Storage System kafka作为一个存储系统 An ...
- amazeui学习笔记--css(HTML元素1)--按钮Button
amazeui学习笔记--css(HTML元素1)--按钮Button 一.总结 1.button的基本使用:a.am-btn 在要应用按钮样式的元素上添加 .am-btn,b.颜色 再设置相应的颜色 ...
- 关于http请求指定本地ip
static void Main(string[] args) { //ssl证书验证问题(没有校验) ServicePointManager.ServerCertificateValidationC ...
- 编程——C语言的问题,堆栈
堆和栈的区别一.预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分 1.栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等.其操作方式类似于数据结 ...
- windows下安装emscripten
windows下安装emscripten windows下安装emscripten需要python.git环境 python安装 git安装 开始安装 # 1.克隆emsdk git clone ht ...
- DIV+CSS学习笔记(CSS)
css基础知识: css样式表的定义 css:(Cascading Style Sheets)层叠样式表: 分类及位置:内部样式-head区域style标签里面 外部样式-link调用 内联样式-标签 ...
- 自旋锁spinlock解析
1 基础概念 自旋锁与相互排斥锁有点类似,仅仅是自旋锁不会引起调用者睡眠.假设自旋锁已经被别的运行单元保持.调用者就一直循环在那里看是否该自旋锁的保持者已经释放了锁."自旋"一词就 ...
- Spring Boot + Jersey
Jersey是一个很好的Java REST API库.当你用Jersey实现REST的时候.是很自然的.同一时候Spring Boot是Java世界中还有一个很好的工具.它降低了程序的应用配置(< ...