加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式

发布时间:2020-12-13 22:20:06 所属栏目:百科 来源:网络整理
导读:《正则表达式》 1. b :匹配一个位置——单词的开头或结尾。 种类:位置。 eg: Pattern.matches("bhib","hi") 返回true; 即除"hi"外,没有其他任何字符。 2. . :除了换行符以外的任意字符。 种类:除换行符外的任意字符。数目:有且仅有一个。 eg: Patt
《正则表达式》
1.
b:匹配一个位置——单词的开头或结尾。
种类:位置。
eg:
Pattern.matches("bhib","hi") 返回true;
即除"hi"外,没有其他任何字符。


2.
.:除了换行符以外的任意字符。
种类:除换行符外的任意字符。数目:有且仅有一个。
eg:
Pattern.matches("c.t","cat") 返回false;
Pattern.matches("c.t","caat") 返回false;


3.
*:前面的字符出现0次或多次。(与前面的字符构成一个整体,组合使用)
种类:与*前面的字符完全相同。数目:零次或多次。


.与*组合可表示任意长度的任意内容的字符串。
eg:
Pattern.matches("c.*t","cat") 返回true


eg:所以.*就表示任意长度的任意字符串。


4.
d:匹配一位数字。
种类:数字。数目:有且仅有一个。
eg:
Pattern.matches("cdt","ct") 返回false
Pattern.matches("cdt","c8t") 返回true


5.
{sum}:前面的字符必须连续出现不多不少sum次。(与前面的字符构成一个整体,组合使用)
{min,max}:前面的字符必须出现min到max次,即min<= N <=max
{min,}:min或更多次。
种类:与前面的字符完全相同。数目:sum个。
eg:
Pattern.matches("cd{0}t","ct") 返回true


Pattern.matches("cd{1}t","ct") 返回false
Pattern.matches("cd{1}t","c8t") 返回true


Patter.matches("bad{0,3}b","a") 返回true
Patter.matches("bad{0,"a1") 返回true
Patter.matches("bad{0,"a123") 返回true
Patter.matches("bad{0,"a1234") 返回false
6.
s:匹配一个空白字符。
种类:空白字符(空白字符包含很多种,并不仅仅是空格。还有制表符(tab)、换行符、中文全角空格等)。
数量:有且仅有一个。
eg:
Pattern.matches("cst","ct") 返回true —— 无空白字符
Pattern.matches("cst","c t") 返回true —— 有一个“空格”字符
Pattern.matches("cst","c t") 返回true —— 有一个“制表符”
Pattern.matches("cst","c t") 返回false —— 由两个“空格”字符


7.
w:大小写英文字母、数字、下划线。
种类:A-Z a-z 0-9 _。 数量:有且仅有一个。
eg:
Pattern.matches("cwt","ct") 返回false —— 没有 【A-Z a-z 0-9 _】
Pattern.matches("cwt","cAt") 返回true
Pattern.matches("cwt","cAAt") 返回false —— 多于一个


组合:w*就是任意数量的[A-Z a-z 0-9 _]
eg:
Pattern.matches("cw*t","cAa8_t") 返回true


8.
+:前面的字符出现一次或多次。(与前面的字符构成一个整体,组合使用。)
种类:与前面的字符完全相同。数量:一次或多次
区别*:*重复0-n次,+重复1-n次。


9.
^:字符串开头
$:字符串结尾
种类:仅指一个位置。
eg:
Pattern.matches("^ad{0,3}$","a") 返回true
Pattern.matches("^ad{0,"a1") 返回true
Pattern.matches("^ad{0,"a123") 返回true
Pattern.matches("^ad{0,"a1234") 返回false


10.
?:前面的字符出现0次或1次。
种类:与?前面的字符相同。数量:0次或1次。
eg:
Pattern.matches("a?","") 返回true
Pattern.matches("a?","a") 返回true


11.
[...]:相当于枚举。即出现且只能出现"..."中的一个
eg:
Pattern.matches("[0-9]","") 返回false —— 没出现
Pattern.matches("[0-9]","0") 返回true
Pattern.matches("[0-9]","01") 返回false —— 出现了不止一次


12.
|:将两个匹配条件进行逻辑或运算。可以用“()”改变优先级。
eg:
Pattern.matches("d{8}|d{5}","12345") 返回true
Pattern.matches("d{8}|d{5}","123456") 返回false
Pattern.matches("d{8}|d{5}","12345678") 返回true


13.
():将条件进行分组。
eg:
Pattern.matches("(d{8}|d{5})|a[0-3]{2}","12345678") 返回true
Pattern.matches("(d{8}|d{5})|a[0-3]{2}","123456") 返回false
Pattern.matches("(d{8}|d{5})|a[0-3]{2}","12345") 返回true
Pattern.matches("(d{8}|d{5})|a[0-3]{2}","a00") 返回true
Pattern.matches("(d{8}|d{5})|a[0-3]{2}","00") 返回false


14.反义
W,S,D,B,[^x],[^aeiou]
见表3


15.向后引用:
若有多个分组"()",默认情况下,会自动将分组按从左到右的顺序编号为1、2、3...。
可以重复搜索前面某个分组匹配的文本,例如,1代表分组1匹配的文本。
eg:
b(w+)bs+1b 会匹配例如:"go go"、"kitty kitty"
Pattern.matches("b(w+)bs+1b+","go go" ) 返回true
Pattern.matches("b(w+)b(s+1b)+","go go go go" ) 返回true


?<name>:可以用来指定组名。
eg:








16.附录
1.所有限定符的比较



2.要查找元字符本身,须用进行转义。
eg:
Pattern.matches(".","a") 返回false

Pattern.matches(".",".") 返回true


参考网站:

正则表达式30分钟入门教程

正则表达式 小事好

Java中使用正则表达式函数

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读