黑马程序员——11 正则表达式

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

正则表达式

一、概念

符合一定规则的表达式,用于专门操作字符串,可以简化对字符串的复杂操作,主要用于一些特定的符号来表示一些代码操作。

二、常见符号

2.1字符

x                  字符 x

\\                 反斜线字符

\t                 制表符 (‘\u0009‘)

\n                 新行(换行)符 (‘\u000A‘)

\r                 回车符 (‘\u000D‘)

\f                 换页符 (‘\u000C‘)

\a                 报警 (bell) 符 (‘\u0007‘)

2、字符类

[abc]                    a、b或 c(简单类)

[^abc]                 任何字符,除了 a、b或 c(否定)

[a-zA-Z]               a到 z或 A 到 Z,两头的字母包括在内(范围)

[a-d[m-p]]            a到 d或 m 到 p:[a-dm-p](并集)

[a-z&&[def]]               d、e或 f(交集)

[a-z&&[^bc]]        a到 z,除了 b和 c:[ad-z](减去)

[a-z&&[^m-p]]     a到 z,而非 m到 p:[a-lq-z](减去)

3、预定义字符类

.                         任何字符(与行结束符可能匹配也可能不匹配)

\d                        数字:[0-9]

\D                       非数字: [^0-9]

\s                        空白字符:[ \t\n\x0B\f\r]

\S                       非空白字符:[^\s]

\w                       单词字符:[a-zA-Z_0-9]

\W                      非单词字符:[^\w]

4、边界匹配器

^                         行的开头

$                         行的结尾

\b                        单词边界

\B                       非单词边界

\A                       输入的开头

\G                       上一个匹配的结尾

\Z                       输入的结尾,仅用于最后的结束符(如果有的话)

\z                        输入的结尾

5、Greedy数量词

X?                       X,一次或一次也没有

X*                       X,零次或多次

X+                       X,一次或多次

X{n}                    X,恰好 n次

X{n,}                   X,至少 n次

X{n,m}                X,至少 n次,但是不超过 m 次

6、组和捕获

捕获组可以通过从左到右计算其开括号来编号。例如,在表达式 ((A)(B(C)))中,存在四个这样的组:

1     ((A)(B(C)))

2     \A

3     (B(C))

4     (C)

组零始终代表整个表达式。在替换中常用$匹配组的内容。

切割:利用String类中的String[]  sqlit(String  regex)方法来切割字符串

说明:

按叠词完成切割:为了让规则被重用,可将规则封装成一个组,用()完成。组的出现都有编号,从1开始。想要使用已有的组可通过\n(n就是组的编号)的形式来获取。

对于组中所匹配的字符,可以用$n来获取。$在正则中表示行的结尾,所以出现在正则中不能用来表示组,一般用于替换中。如下面功能中。

三、替换: String replaceAll(String regex,String replacement)方法。

四、获取:将字符串中的符合规则的子串取出。

操作步骤:

(1)将正则表达式封装成对象。

(2)让正则对象和要操作的字符串相关联。

(3)关联后,获取正则匹配引擎。

(4)通过引擎对符合规则的子串进行操作,比如取出。

五、四种功能的选择(思路方式):

(1)如果只想知道该字符是否对是错,使用匹配。

(2)想要将已有的字符串变成另一个字符串,替换。

(3)想要按照自定的方式将字符串变成多个字符串。切割。获取规则以外的子串。

(4)想要拿到符合需求的字符串子串,获取。获取符合规则的子串。

时间: 2024-10-12 07:29:55

黑马程序员——11 正则表达式的相关文章

黑马程序员——Java正则表达式

正则表达式 两类:Pattern模式类和Matcher匹配类 Pattern主要是用来编译模型和生成匹配器matcher: 正则表达式基本方法 //定义一个pattern,该pattern就是个f空两个k的模式 Pattern p =Pattern .compile("f(.+?)(.+?)(.+?)k" ); //按照p的模式匹配字符串 Matcher m = p .matcher ("qqfucogffAkfkkkkkf15fkjjfqfi") ; while(

黑马程序员_JAVASE_正则表达式

1.什么叫做正则表达式? 作用:用于专门操作字符串 特点:用一些特定的符号来表示一些代码操作 好处:可以简化对字符串的复杂操作 弊端:符号定义的越多,正则越长,阅读性越差 [abc] a.b 或 c(简单类) [^abc] 任何字符,除了 a.b 或 c(否定) [a-zA-Z] a 到 z 或 A 到 Z,两头的字母包括在内(范围) [a-d[m-p]] a 到 d 或 m 到 p:[a-dm-p](并集) [a-z&&[def]] d.e 或 f(交集) [a-z&&[

黑马程序员------Java反射学习总结(一)

-------------------------Java培训.Android培训,期待与您交流!----------------------------- 一.反射的概念 1) Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类中的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制. 2)一句话来讲,反射就是将Java类中的各个成分映射成相应的Java类. 3)即在Java中,描述事物的各种

黑马程序员 ---------- Java网络技术之 ---正则表达式 (Day06)

---------------------- ASP.Net+Unity开发..Net培训.期待与您交流! ---------------------- 正则表达式 正则表达式:基本知识 1  字符,   2 字符类 , 3 预定义字符类 , 4 边界匹配器 ,5 Greedy 数量词,6 Logical 运算符 详解: 1 字符 x   字符 x \\ 反斜线字符 \0n 带有八进制值 0 的字符 n (0 <= n <= 7) \0nn 带有八进制值 0 的字符 nn (0 <= n

黑马程序员-正则表达式基础

正则表达式是一种描述字符串集的方法,它是以字符串集中各字符串的共有特征为依据的.正则表达式可以用于搜索.编辑或者是操作文本和数据.它超出了 Java 程序设计语言的标准语法,因此有必要去学习特定的语法来构建正则表达式.正则表达式的变化是复杂的,一旦你理解了它们是如何被构造的话,你就能解析或者构建任意的正则表达式了..正则表达式由一些普通字符和一些元字符组成. 普通字符包括大小写的字母和数字,而元字符则具有特殊的含义.在最简单的情况下,一个正则表达式看上去就是一个普通的查找串.例如,正则表达式"a

黑马程序员——正则表达式篇

------- android培训.java培训.期待与您交流! ---------- 正则表达式:符合一定规则的表达式. 作用:用于专门操作字符串. 特点:用一些特定的符合来表示一些代码操作,这样就简化书写. 所以学习正则表达式,就是在学习一些特殊符号的使用. 好处:可以简化对字符串的复杂操作. 弊端:符合定义越多,正则表达式越长,阅读性越差. 具体操作功能: 1,匹配:String matches(regex);用规则匹配整改字符串,只要有一处不符合规则,就匹配结束,返回false 2,切割

黑马程序员-正则表达式的作用

黑马程序员-正则表达式的作用

黑马程序员_毕向东_Java基础视频教程_Java基础学习知识点总结

黑马程序员_毕向东_Java基础视频教程 Java基础学习知识点总结 2016年01月06日  day01 一.基础知识:软件开发 1.什么是软件?软件:一系列按照特定顺序组织的计算机数据和指令的集合. 2.常见的软件:系统软件:如:DOS,Windows,Linux等.应用软件:如:扫雷,迅雷,QQ等. 3.什么是开发?制作软件. 二.基础知识:人机交互方式 4.软件的出现实现了人与计算机之间的更好的交互. 5.交互方式:图形化界面:这种方式简单直观,使用者易于接受,容易上手操作.命令行方式:

黑马程序员----java基础--String字符串

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 一.String类概述 java中用String类进行描述对字符串进行了对象的封装.这样的好处是可以对字符串这种常见数据进行方便的操作.对象封装后,可以定义N多属性和行为. String类是final的,也就是说它没有子类. 二.String字符串的特点 1.字符串一旦被初始化就不可以被改变.并且存放在方法区中的常量池中. 1 class StringDemo{ 2 public static