正则表达式
什么是正则表达式?
正则表达式(Regular Expression)是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为"元字符")。
正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。
正则表达式的应用?
其实正则表达式的作用就是用来匹配字符串,所以其实他的应用也就是匹配字符串,比如可以获取字符串中的特定元素,判断字符串是否包含特定元素,判断字符串是否符合我们要求的格式等。
实际的例子就像是我们邮箱格式验证等等。
正则表达式的好处?
正则表达式的好处时非常明显的,在正常情况下我们需要对字符串的操作其实是非常繁琐的,对于格式验证,我们可能需要写一个非常繁琐的函数。而如果存在多种不同格式的验证,那么我们就需要编写大量的格式验证函数。而使用正则表达式就完全没有这样的情况,我们只需要编写正则表达式。然后和文本进行匹配就好了。
正则表达式的使用方式
这里不做详细的介绍
只是讲解一些比较简单的用法。
示例
a
ac
abc
abbc
abbbbbc
adc
addddc
对于以上给定的字符串匹配
样例一:限定符?
?表示前面的字符出现一次或者零次
正则表达式:ac?
匹配结果
样例二:限定符*
*表示前面的字符出现0次到多次
正则表达式:ab* c
匹配结果
样例三:限定符+
+表示前面的字符出现1次到多次
正则表达式:ab+c
匹配结果
样例四:限定符{}
{}可以表示前面一个字符串出现的次数
ab{2}c 表示b出现两次
ab{2,5}c 表示b出现2到五次
ab{2,}c 表示b至少出现两次
样例五:()
()可以将多个元素视为一个元素
比如对于样例:
我们希望能够匹配不同的重复元素
比如重复的abab
我们可以使用正则表达式:(ab){2}
匹配结果
样例六:或运算符
对于样例:
我们希望a后面不是b就是c
我们就可以使用正则表达式:a(b|c)
匹配结果
样例七:[]符号
[] 表示只能匹配在其中的元素
对于样例:
我们希望匹配a后面的元素在a-c范围的我们就可以使用
正则表达式:a[abc]
如果我们希望匹配所有a-z的所有元素
正则表达式:[a-z]
如果我们希望匹配所有a-z的字符和所有数字
正则表达式[a-z0-9]
样例八:^
^表示以外的运算符
对于
我们希望匹配所有除了数字的元素
正则表达式[ ^0-9]
练习样例
(1)
对于
<span><b>bbbbbbbbbbbbb</b></span>
我们希望匹配标签的部分
(2)
对于
#00
#ffffff
#ffaaff
#00hh00
#aabbcc
#000000
#fffffff
我们希望匹配正确的颜色表示方式
规则第一个字符必须是#,之后的字符必须是六个值,并且属于十六进制的范围(0-f)
答案:
<.+?>
#[a-fA-F0-9]{6}\b
java中如何使用正则表达式
获取给定字符串中所有数字
public static void main(String[] args) {
String str="abc123abc123";
String rule="[0-9]";
Pattern pattern= Pattern.compile(rule);
Matcher matcher=pattern.matcher(str);
while(matcher.find()){
System.out.println(matcher.group());
}
}
输出结果:
查询字符串中是否包含给定的规则
public class ZhengZe {
public static void main(String[] args) {
String str="abc123abc123";
String rule=".*123.*";
boolean is=Pattern.matches(rule,str);
System.out.println(is);
}
}
更多推荐
正则表达式的基本用法
发布评论