正則表達式基础



正則表達式语法(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使用的更多相关文章

  1. 深入浅出理解iOS经常使用的正則表達式—基础篇[Foundation]

    參考资料:cocoachina的zys475481075的文章 几个单词 Regular ['regjʊlə]adj. 定期的:有规律的 Expression[ɪk'spreʃ(ə)n; ek-] n ...

  2. apache rewrite 正則表達式基础

    用了好几次rewrite,用的次数不是非常多,每次都忘,都得又一次上网上找一堆现看,总结一下,以免以后忘了 =====================分隔符===================== ...

  3. JAVA中正則表達式总结

    昨天,我的朋友请教我正則表達式.我也好久没有写过正則表達式了,昨天刚好看了下如鹏网创始人杨中科老师关于正則表達式的解说.使我加深了正則表達式的印像.现我把他总结下: 很多语言,包含Perl.PHP.P ...

  4. JAVA中正則表達式总结(具体解释及用途)

    很多语言,包含Perl.PHP.Python.JavaScript和JScript,都支持用正則表達式处理文本,一些文本编辑器用正則表達式实现高级"搜索-替换"功能.所以JAVA语 ...

  5. python进阶十_正則表達式(一)

    近期状态一直不太好,至于原因,怎么说呢,不好说,总之就是纠结中覆盖着纠结,心思全然不在点上,希望能够借助Python的学习以及博客的撰写来调整回来,有的时候回头想一想,假设真的是我自己的问题呢,曾经我 ...

  6. Python——正則表達式(2)

    本文译自官方文档:Regular Expression HOWTO 參考文章:Python--正則表達式(1) 全文下载 :Python正則表達式基础 ======================== ...

  7. 使用正則表達式的格式化与高亮显示json字符串

    使用正則表達式的格式化与高亮显示json字符串 json字符串非常实用,有时候一些后台接口返回的信息是字符串格式的,可读性非常差,这个时候要是有个能够格式化并高亮显示json串的方法那就好多了,以下看 ...

  8. hive正則表達式

    hive中实现正則表達式,与java中的正則表達式有所差别: 这里经过探索总结了一些: hive中的正则能够用,可是有所差别,差别在于原来的'\' 转义,这里变成了双斜杠了'\\' hive中的正则解 ...

  9. JavaScript正則表達式知识汇总

    Js 正則表達式知识汇总 正則表達式: 1.什么是RegExp?RegExp是正則表達式的缩写.RegExp 对象用于规定在文本中检索的内容. 2.定义RegExp:var +变量名=new RegE ...

随机推荐

  1. Method of address space layout randomization for windows operating systems

    A system and method for address space layout randomization ("ASLR") for a Windows operatin ...

  2. CentOS经常使用文件操作命令[百度博客搬家]

    路径操作的CentOS经常使用命令 如今整理例如以下(百度博客搬家)   cd pwd  NO1. 显示当前路径  [root@rehat root]# pwd  NO2. 返回用户主文件夹  [ro ...

  3. Linux经常使用命令(七) - cp

    cp命令用来拷贝文件或者文件夹.是Linux系统中最经常使用的命令之中的一个.普通情况下.shell会设置一个别名.在命令行下拷贝文件时,假设目标文件已经存在.就会询问是否覆盖.无论你是否使用-i參数 ...

  4. progerssbar-style 属性分析

    先看如下代码 <ProgressBar android:id="@+id/stateProgressBar" android:orientation="horizo ...

  5. listview-属性大全

    <ListView <!-- 决定listview里的内容是否从底部开始 -- android:stackFromBottom="true" </Listview ...

  6. vue-cli打包项目后,可以修改配置文件

    问题: 前端需要修改后台服务器地址url,写好的配置文件会在npm run build 后压缩在一起,传到运行的前端服务器上后,需要到前端打包的源码,找到url地址进行修改.如果不在打包的源码修改,则 ...

  7. Java基础学习总结(52)——Liunx系统Centos上搭建Java开发环境

    一.安装jdk 1.查看Linux自带的JDK是否已安装 [plain] view plain copy print? java –version 如果出现openjdk,最好还是先卸载掉openjd ...

  8. C#正则表达式匹配HTML中的图片路径,图片地址

    C#正则表达式匹配HTML中的图片路径,图片地址 最近的项目中有个关于网页取图的功能需要我自己开发,那就是用正则表达式来匹配图片标签.       一般来说一个 HTML 文档有很多标签,比如“< ...

  9. Altium Designer中Electrical Type的意思

    :之前Altium Designer设计图时发现: 它的引脚上有两个三角 双击打开引脚,打开配置: 于是从网上查了一下:http://blog.csdn.net/jbb0523/article/det ...

  10. 微服务实战(六):选择微服务部署策略 - DockOne.io

    原文:微服务实战(六):选择微服务部署策略 - DockOne.io [编者的话]这篇博客是用微服务建应用的第六篇,第一篇介绍了微服务架构模板,并且讨论了使用微服务的优缺点.随后的文章讨论了微服务不同 ...