正則表達式基础及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 ...
随机推荐
- Node.js笔记 请求方式 GET
三种方法解析url 1. 传统的字符串split切割方法 2. querystring 只能解析数据部分,不能解析前面 index.html之类的地址部分. 3. url 可以解析地址和数 ...
- 14、序列化操作,类的保存和dict转JSON
在程序运行的过程中,所有的变量都是在内存中,比如,定义一个dict: d = dict(name='Bob', age=20, score=88) 可以随时修改变量,比如把name改成'Bill',但 ...
- jQuery快速入门知识重点
1.jquery中attr与prop的区别 attr:是通过setAttribute 和 getAttribute来设置的使用的是DOM属性节点 prop:是通过document.getEle ...
- Wicket实战(二)hello world
上次的博文Wicket实战(一)概述中给大家简介了一下关于Wicket的概念性内容,今天我们完毕第一个Wicket实例-Hello World! 1.Hello World原版 在Wic ...
- NSAttributeString创建各种文字效果
NSDictionary *attributes =@{ NSForegroundColorAttributeName: [UIColorredColor], NSFontAttributeName: ...
- DC中为什么要用Uniquify?
转自:http://blog.sina.com.cn/s/blog_68c493870101exl7.html 为了在layout中进行时钟树的综合,网表在DC中必须被uniquified.所谓uni ...
- RISC-V评估系列
RISC-V评估系列 RISC-V工具链搭建 SiFive虚拟机分享--提取码:xe1c SiFive SDK函数结构 底层驱动 driver框架 操作系统FreeRTOS移植 FGPA评估 benc ...
- hive SQL优化之distribute by和sort by
近期在优化hiveSQL. 以下是一段排序,分组后取每组第一行记录的SQL INSERT OVERWRITE TABLE t_wa_funnel_distinct_temp PARTITION (pt ...
- 结合Wireshark捕获分组深入理解TCP/IP协议栈之HTTP协议
摘要: 本文简单介绍了Web应用层协议理论知识,详细讲述了HTTP请求报文和响应报文各个字段含义,并从Wireshark俘获分组中选取HTTP相关报文进行分析. 一.概述 Web的应用 ...
- ZOJ 1136 Longest Ordered Subsequence DP
传送门:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1136 题目大意:给定一串序列,求最长的升序列长度,如1, 7, 3, ...