黑马程序员技术交流社区
标题:
234234234234
[打印本页]
作者:
214652440
时间:
2015-12-12 22:25
标题:
234234234234
本帖最后由 214652440 于 2019-7-4 15:24 编辑
423阿萨德发送2412123123123
作者:
星晴。
时间:
2015-12-12 23:47
用正则解决一些问题可以节省很多代码,入学考试的时候我就遇到过
作者:
zhangdazhi186
时间:
2015-12-13 00:07
看了 正则表达式 感觉挺实用
作者:
744919632
时间:
2015-12-13 00:21
正则表达式的语法规则:
字符: 格式 例如
x 代表的是字符x, "a" --> 需要匹配的内容就是a 12345 -->***45 "123"
\\ 代表的是反斜线字符'\' "\\" --> 需要匹配的内容就是\
\t 制表符 "\t" --> 对应的效果就是产生一个制表符的空间
\n 换行符 "\n" --> 对应的效果就是换行,光标在原有位置的下一行
\r 回车符 "\r" --> 对应的效果就死回车后的效果,光标来到下一行行首
字符类 :格式 例如
[abc] 代表的是a、b 或 c "[abc]" --> 需要匹配的内容就是字符a,或者字符b,或字符c的一个
[^abc]代表的是除了 a、b 或 c以外的任何字符 "[^abc]" -->需要匹配的内容就是不是字符a,或者不是字符b,或不是字符c的任意一个字符
[a-zA-Z]代表的是a 到 z 或 A 到 Z,两头的字母包括在内 "[a-zA-Z]"-->需要匹配的是一个大写或者小写字母
[0-9]代表的是 0到9数字, 两头的数字包括在内 "[0-9]"-->需要匹配的是一个数字
[a-zA-Z_0-9]代表的字母或者数字或者下划线(单词字符) [a-zA-Z_0-9] --> 需求匹配的是一个字母或者是一个数字或一个下滑线
边界匹配器: 格式 例如
^ 行的开头 ^[abc][0-9]$ --> 需要匹配的内容从[abc]这个位置开始, 相当于左双引号
$ 行的结尾 ^[abc][0-9]$ --> 需要匹配的内容以[0-9]这个结束, 相当于右双引号
\b 单词边界 "\\b[abc]\\b" --> 代表的是字母a、b、c的左右两边需要的是非单词字符
wo shi lkp haha a!
预定义字符类
. 任何字符 就想使用.的话 "\\."来实现
\d 数字:[0-9]
\w 单词字符:[a-zA-Z_0-9]
数量词:格式 例如:
X? X,一次或一次也没有 "a?" ---> 需要匹配的内容是一个字符a,或者一个a都没有
X* X,零次或多次 "a*" ---> 需要匹配的内容是多个字符a,或者一个a都没有
X+ X,一次或多次 "a+" ---> 需要匹配的内容是多个字符a,或者一个a
X{n} X,恰好 n 次 "a{5}"--> 需要匹配的内容是5个字符a
X{n,} X,至少 n 次 "a{5, }"--> 需要匹配的内容是最少有5个字符a
X{n,m} X,至少 n 次,但是不超过 m 次 "a{5,8}"--> 需要匹配的内容是有5个字符a 到 8个字符a之间
判断功能
public boolean matches(String regex) 该字符串是否与正则表达式规则相匹配
分割功能
public String[] split(String regex) 将字符串使用正则表达式进行分割,返回一个分割后的字符串数组
替换功能:
public String replaceAll(String regex, String replacement) 将满足正则表达式规则的字符串内容,用给定的新字符串进行替换,
获取功能:
Pattern: 正则表达式对象
方法:
public static Pattern compile(String regex) 将正则表达式字符串 编译成正则表达式对象
public Matcher matcher(CharSequence input) 使用正则表达式对象与给定的数据进行匹配,将结果封装成对象,匹配器对象
Matcher: 匹配器对象
public boolean find() 在指定的字符串中,查找是否有满足正则表达式条件的子字符串信息
public String group() 获取满足正则表达式条件的子字符串
public boolean matches()获取指定的字符串与正则表达式规则匹配的结果
作者:
hrfhwy
时间:
2015-12-13 09:50
很方便,就是不容易理解。如 String ip="192.168.1.254 102.49.67.9 10.10.10.10 2.2.2.2 8.109.90.30"; ip=ip.replaceAll("(\\d+)","00$1"); System.out.println(ip); ip=ip.replaceAll("0*(\\d{3})","$1");
作者:
hrfhwy
时间:
2015-12-13 09:51
很方便,就是不容易理解。如 String ip="192.168.1.254 102.49.67.9 10.10.10.10 2.2.2.2 8.109.90.30"; ip=ip.replaceAll("(\\d+)","00$1"); System.out.println(ip); ip=ip.replaceAll("0*(\\d{3})","$1");
作者:
hrfhwy
时间:
2015-12-13 09:51
很方便,就是不容易理解。如 String ip="192.168.1.254 102.49.67.9 10.10.10.10 2.2.2.2 8.109.90.30"; ip=ip.replaceAll("(\\d+)","00$1"); System.out.println(ip); ip=ip.replaceAll("0*(\\d{3})","$1");
作者:
hrfhwy
时间:
2015-12-13 09:51
很方便,就是不容易理解。如 String ip="192.168.1.254 102.49.67.9 10.10.10.10 2.2.2.2 8.109.90.30"; ip=ip.replaceAll("(\\d+)","00$1"); System.out.println(ip); ip=ip.replaceAll("0*(\\d{3})","$1");
作者:
迷茫不堪的年纪
时间:
2015-12-13 19:40
只能说这个博大精深
作者:
VisionDo
时间:
2015-12-13 20:02
要全部都记住吗
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2