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

正则总结

发布时间:2020-12-13 22:58:35 所属栏目:百科 来源:网络整理
导读:前阵子在总结自己的正则笔记,现在就拿出去给大家分享,都是从视频自己打下来或者参考别人的帖子然后自己写下来的,适合正则入门,高深的这里还没总结到。 正则: 字符匹配(文本处理语言); 匹配规则: 1、优先选择最左端的匹配结果 2、标准的匹配量词*、+、?

前阵子在总结自己的正则笔记,现在就拿出去给大家分享,都是从视频自己打下来或者参考别人的帖子然后自己写下来的,适合正则入门,高深的这里还没总结到。

正则:字符匹配(文本处理语言);
匹配规则:
1、优先选择最左端的匹配结果
2、标准的匹配量词*、+、?和{m,n}是匹配优先的;

括号:
尖括号<>;

小括号():对字符进行分组->子表达式;并保存匹配的文本;

中括号[]:自定义能够匹配 '多种字符' 的表达式(匹配的对象);

大括号{}:修饰匹配次数的符号;

各个字符的含义:
[^]:代表取反;
^[]:代表一行的开头 匹配字符串的开始;
$:代表以什么结尾 匹配字符串的结束;
.:代表任意一个字符;
d:代表任意一个数字;
s:space代表空白字符 包含[ tnfr];
w:word代表一个字符[a-zA-Z_0-9]匹配字母或数字或下划线或汉字;
b:单词边界,匹配单词的开始或结束,功能类似$,hello world o w这样就是单词边界;
t:制表符,Tab;
v:竖向制表符;
f:换页符;
e:Escape;
nn:ASCII代码中八进制代码为nn的字符;
xnn:ASCII代码中十六进制代码为nn的字符;
unnnn:Unicode代码中十六进制代码为nnnn的字符;
c:NASCII控制字符。比如cC代表Ctrl+C;
A:字符串开头(类似^,但不受处理多行选项的影响);
Z:字符串结尾或行尾(不受处理多行选项的影响);
z:字符串结尾(类似$,但不受处理多行选项的影响);
G:当前搜索的开头;
W:匹配任意不是字母,数字,下划线,汉字的字符;
S:匹配任意不是空白符的字符;
D:匹配任意非数字的字符;
B:匹配不是单词开头或结束的位置;
m:匹配多行;
s:匹配单行;
i:忽略大小写(ignore);
g:全局匹配(global);
&;:单词的起始位置;
&;:单词的结束位置;
[^x]:匹配除了x以外的任意字符;
[^aeiou]:匹配除了aeiou这几个字母以外的任意字符;

符号的含义:

*代表0个或多个;
+代表1个或多个;
?代表1个或者0个;

懒惰模式:

*?重复任意次,但尽可能少重复;
+?重复1次或更多次,但尽可能少重复;
??重复0次或1次,但尽可能少重复;
{n,m}?重复n到m次,但尽可能少重复;
{n,}?重复n次以上,但尽可能少重复;
{}代表范围 量词个数;
{n}正好出现n次;
{n,}最少出现n次,最多不知道了;
{n,m}最少n次,不超过m次;
“[abc]”表示去abc其中的一个;
”[]|[]“两个之间的其中一个;
(?<Word>w+)(或者把尖括号换成'也行:(?'Word'w+)),这样就把w+的组名指定为Word了;
(exp)匹配exp,并捕获文本到自动命名的组里;
(?<name>exp)匹配exp,并捕获文本到名称为name的组里,也可以写成(?'name'exp);
(?:exp)匹配exp,不捕获匹配的文本,也不给此分组分配组号;
(?=exp)匹配exp前面的位置 比如bw+(?=ingb),匹配以ing结尾的单词的前面部分(除了ing以外的部分);
(?<=exp)匹配exp后面的位置;
(?!exp)匹配后面跟的不是exp的位置;
(?<!exp)匹配前面不是exp的位置;
(?#comment)这种类型的组不对正则表达式的处理产生任何影响,用于提供注释让人阅读;

修饰模式:
(?i)不区分大小写的匹配模式;
(?s)宽松排列和注释模式;
(?x)点号通配模式;
(?m)增强的行锚点模式;

ps:Pattern p=Pattern.compile(“[a-z]{3}”)a-z必须要连续重复匹配三次 {1,3}表示重复的次数不能少于1次,不能多于3次,否则都不匹配;
[d{3}]这样里面的{3}不起作用,会被当做匹配对象分解成3部分来匹配这3部分中的任意一个都行{ 3 };
ps:([.+^>]+)这样^会不起作用,因为.+已经包含了>;

随手操作个例子:

href正则:<a(?:.+)href=['"]*([^>"]+)['"]*>(.+)</a>

如以上内容有错欢迎指正

(编辑:李大同)

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

    推荐文章
      热点阅读