`
angelbill3
  • 浏览: 256536 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
社区版块
存档分类
最新评论

【总结】正则表达式

 
阅读更多
正则表达式(Regular Expresion)= regex / regexp / re
它们通常被用来做字符串的验证,解析和转换。虽然正则表达式并没有完全的标准化,但它的作用却非常大,使用范围也非常广。

首先先介绍一些有用的网站(国外的,可能打开都比较慢):
1、https://en.wikipedia.org/wiki/Regular_expression : 大家熟悉的,维基百科页
2、http://regex.learncodethehardway.org/book/ : 在线学习网站,非常的详细
3、http://txt2re.com :一个提供很多种语言的在线校验正则网站 (包括 perl php python java javascript coldfusion c c++ ruby vb vbscript j# c# c++.net vb.net)
4、https://swtch.com/~rsc/regexp/regexp1.html : 好文章之正则表达式是怎样工作的?
5、http://shop.oreilly.com/product/9780596528126.do : oreilly精品图书系列之<Mastering Regular Expressions>,此书也有中文版,http://www.amazon.cn/精通正则表达式-杰佛瑞E-F-佛瑞德/dp/B008UCHA58/ref=sr_1_2?ie=UTF8&qid=1452325307&sr=8-2&keywords=Mastering+Regular+Expressions

当然不管哪门学科,都可以深入的学习或是只是学会简单的使用,而正则表达式做为一项工具,平时工作用到的可能没有那么深入,以下是比较适合初入门语法学习者的一些语法介绍(语法学习的内容不是原创,应该是我以前刚入门的时候从前辈们的博文中总结下来的):

基础语法:
^   匹配输入字符串的开始位置
$   匹配输入字符串的结束拉置
\d  匹配一个数字字符 = [0-9]
+   匹配 1或多个正好在它之前的那个字符,例:9+ 匹配 9, 99, 999...等
?   匹配 0或1个正好在它之前的字符
.    匹配除\r\n之外的任何单个字符

基础字符:
  .    []    ^    $ 


其它:
*   匹配前面的子表达式0次或多次,例:zo*能匹配 z, zoo, zooo... *等价于{0, }
{n} 确定匹配n次,n>=0;例:0{2} 能匹配: food
{n,} 至少匹配n次,n>=0;例:0{2,},不能匹配Bob,但能匹配fooooood中所有的o
\w 匹配包括下划线的任何单词字符,等价:[A-Za-z0-9_]
[xyz] 字符集合,匹配所包含的任意一个字符,例:[abc] 匹配plain中的a
[A-Z] 字符范围
\n 换行
{i},{i, j} 匹配指定数目的字符,表示长度


等价:
?   等价于匹配长度 {0, 1}
*   等价于匹配长度 {0, }
+  等价于匹配长度 {1, }
\d 等价于 [0-9]
\w 等价于 [A-Za-z0-9_]

分割语法
[ ]  包含
[^] 不包含
{ }  匹配长度

如:^([]{})([]{})([]{})$ = 开始([包含内容]{长度})(..)结束

---------------------------------------------------------------------
例子:
1、匹配整数
^\d+$ 等于 ^[0-9]{1,}$
解释:开始[数字0-9]{长度大于等于1}结束 = 长度大于1的数,即整数

2、验证用户名或密码
^[a-zA-Z]\w{5,15}$
解释:开始[目标字符为英文字符][下划线、英文或数字]{长度为5-15}结束 = 由下划线、英文、数字组成的5-15位的字符,首位必须是英文字母。

3、匹配test/开头,但结尾不能为.html结尾的路径
test/.*?[^\.html]
解释:test/[除\n\r的任何字符]{长数为0或1}[不包含.html]
[^\.html] 这里的\. 等价于目标字符:. (点本身),原因是因为.本来是正则语法里的语法之一,所以用\ 来先转义

---------------------------------------------------------------------
JAVA端使用:
1、验证目标字符是否匹配
String reg = "^\\d+$";
String str = "10086";
boolean result = str.matches(reg));
// result: true



2、按格式截取字符
String str = "&id=10086&name=helloworld";
Pattern p = Pattern.compile("&id=([^&]*)");
Matcher m = p.matcher(str);
if (m.find()) {
        String result = m.group(1);
}
// result: 10086
分享到:
评论

相关推荐

    Java使用正则表达式提取XML节点内容的方法示例

    为了帮助开发者更好地掌握Java正则表达式技术,我们提供了一系列的Java正则表达式技巧大全,包括《Java正则表达式技巧大全》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧...

    日期正则表达式(很实用)

    ### 日期正则表达式详解 #### 一、基本概念 正则表达式是一种用于文本模式匹配的强大工具,在处理字符串时极为有用。日期格式验证是正则表达式常见应用场景之一,尤其是在表单验证、数据清洗等领域。本文将详细...

    正则表达式速查 正则表达式举例 正则表达式学习

    根据提供的部分内容,我们可以总结出以下常用的正则表达式语法: 1. **转义字符**:`\'`(反斜杠)用来转义其后的字符,将其标记为特殊字符、原义字符、后向引用或八进制转义符。 - 示例: - `'n'` 匹配字符 "n...

    精通正则表达式(第三版)简体中文版

    ### 正则表达式基础知识与应用 #### 一、正则表达式的定义及用途 正则表达式(Regular Expression)是一种强大的文本处理工具,能够帮助用户查找、替换以及操作特定的字符串或字符组合。它在多种编程语言和操作...

    正则表达式.docx

    正则表达式基础知识点 正则表达式是开发人员经常使用的技术之一,它可以帮助开发人员处理各种字符串相关的问题。然而,许多开发人员对正则表达式的理解和使用存在一定的困难。这篇文章将会详细介绍正则表达式的基础...

    常用正则表达式大全.txt

    根据提供的文件信息,我们可以整理出一系列与正则表达式相关的知识点。这些知识点涵盖了从基本的数字验证到复杂的字符串匹配等多个方面。下面是详细的知识点总结: ### 基本概念 正则表达式是一种用于文本模式匹配...

    如何写正则表达式,正则表达式常用实例

    正则表达式语法和实例总结 正则表达式是一种强大的字符串匹配工具,广泛应用于各种编程语言中,例如Java、Perl等。下面是正则表达式的语法和实例总结。 特殊字符 * `\` 将下一个字符标记为一个特殊字符、或一个原...

    正则表达式(基本包含所有验证的正则)

    ### 正则表达式知识点详解 #### 一、概述 正则表达式是一种强大的文本处理工具,能够帮助我们在文本中进行查找、替换等操作。它通过一系列简短的符号组合来匹配字符串中的某些部分,从而实现高效的数据处理。在本篇...

    精通正则表达式中文版英文版_中文版为扫描版

    总结来说,无论你是新手还是资深开发者,"精通正则表达式"都是一个宝贵的资源,它可以帮助你掌握这个强大的工具,从而更好地处理和操纵文本数据。无论是选择中文扫描版还是英文电子版,都能让你在正则表达式的学习...

    几小时变几秒钟,正则表达式实例秀

    ### 正则表达式实例秀:提升文字处理效率的关键技能 在日常的文字处理工作中,我们经常会遇到需要大量替换或搜索特定格式文本的情况。比如,将文章中的所有网址统一替换为预设格式,或是批量删除含有特定模式的空行...

    Java 使用正则表达式对象实现正则的获取功能

    Java 正则表达式对象实现正则获取功能 在 Java 中,使用正则表达式对象可以实现各种字符串匹配和提取操作。正则表达式对象主要通过 Pattern 和 Matcher 两个类来实现。下面详细介绍如何使用正则表达式对象实现正则...

    正则表达式详解(20分钟看懂正则)

    ### 正则表达式详解 #### 一、正则表达式概述 正则表达式是一种强大的文本模式匹配工具,广泛应用于编程语言如Java中,用于处理字符串数据,实现字符串的搜索、替换、提取等操作。它能够精确描述复杂的文本规则,...

    第11.25节 Python正则表达式编译re.compile及正则对象使用.rar

    总结,`re.compile()`是Python正则表达式的重要工具,它使得我们可以预先编译正则表达式模式,提高程序的效率和可读性。通过创建正则表达式对象,我们可以灵活地执行多种正则操作,如查找、替换和分割字符串,从而在...

    jJAVA正则表达式替换字符

    本资源文件是我自己总结的,其中包括5个类,这5个类的代码基本概括了java正则表达式替换String的多种情况,比如获取某个文件路径中盘符/后边的部分内容,提取"&lt;title&gt;XXXX&lt;/title&gt;"中的文字XXXX,用正则表达式获取指定...

    正则表达式在程序开发中的应用

    ### 正则表达式在程序开发中的应用 正则表达式是编程中一种非常强大的工具,用于处理字符串数据。它能够帮助开发者实现对文本的精确查找、替换等操作,极大地提高了开发效率。本文将详细介绍正则表达式的基本概念...

    Java根据正则表达式生成字符串—Xeger,automaton

    总结一下,Java中的Xeger和automaton(通常通过RE2J库)为我们提供了处理正则表达式的新方式。Xeger是一个方便的工具,可以直接根据正则表达式生成随机字符串,适合测试和调试。而automaton(有限状态自动机)则为...

    正则表达式不包涵特殊字符(除了 指定字符 以外)

    在探讨如何利用正则表达式来判断一个字符串除指定字符外不包含其他特殊字符之前,我们首先需要了解正则表达式的基本概念以及本场景中的具体需求。 ### 正则表达式简介 正则表达式是一种强大的文本处理工具,能够...

Global site tag (gtag.js) - Google Analytics