架构师_程序员

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 445|回复: 1

[资料] 正则表达式基础

[复制链接]
发表于 2019-6-18 21:38:16 | 显示全部楼层
本帖最后由 空蝉如此世 于 2019-6-18 21:39 编辑

前言
在项目中做一些数据匹配,规则限定,爬虫分析数据的时候,我们会用到正则表达式。下面整理了一下正则的基础知识,全都是早年的学习笔记。

正文

#正则表达式基础


.           表示除\n之外的任意的单个字符
[]         字符的筛选
[^]       相当于 非
|           表示或的意思
()         改变运算的优先级。
*          限定符,表示前面的表达式出现0次或多次。
+         限定符,表示前边的表达式必须出现1次或者多次。至少得出现1次。
?          限定符,表示前边的表达式必须出现0次或者1次。
{n}       限定符,限定前边的表达式必须出现n次。
{n,}      限定符,限定前边的表达式至少出现n次。
{n,m}   限定符,限定前边的表达式至少出现n次,最多出现m次。
^  $     表示的是字符串的开头和结尾
\d        等价于[0-9]  
\D       等价于[^0-9]
\s        表示所有那些空白符 不可见字符
\S        就是除了\s以外的所有字符。
\w       表示[0-9a-zA-Z_]
\W      就是除了\w之外的所有其他字符。
\b       表示单词的边界。 (断言,只判断,不匹配。)
=================================================


.    表示除\n之外的任意的单个字符
a.b
a,b
=========================================
[] 字符的筛选
a[0-9]b
a[a-z]b

a[0-9a-zA-Z]b
a1b
axb
aAb

a[^0-9]b  表示a与b之间只能出现除了0123456789之外的任意单个字符。

a[^0-9a-z]b

=====================================================
|  表示或的意思


z|food 由于| 的优先级非常低,所以这个表达式可以匹配  z  或 food 这个表达式不匹配zood

(z|f)ood 才表示zood或者food

===========================================
()改变运算的优先级。

提取组。

=======================================
* 限定符,表示前面的表达式出现0次或多次。

zoo*     表示zo zoo  zoooooooo
(zoo)*   表示zoozoo.......
a.*b     表示ab   aaddddb     afjdsklf%$#@dsklfjdsklfjdsklfjb


================================================
+ 限定符,表示前边的表达式必须出现1次或者多次。至少得出现1次。

a.+b
a9dfjsakl3824urnj324239feb
==================================================
? 限定符,表示前边的表达式必须出现0次或者1次。

a.?b
ab
axb


? 的另外一个作用就是“终止贪婪模式”。正则表达式默认是贪婪模式。

======================================================================
a[0-9]+b

a0b
a00b
a09b
a99999999999999999999b


==========================其他限定符=====================
{n}  限定符,限定前边的表达式必须出现n次。
a[0-9]{10}b
a1234567899b
======================
{n,} 限定符,限定前边的表达式至少出现n次。

1[a-z]{3,}2
1axffdsafdsafdasfdsafdsafdsafdsfdsafsdfdsfdsfdsa2



========================================
{n,m} 限定符,限定前边的表达式至少出现n次,最多出现m次。

a[0-9]{3,7}b
a0000000b

===========================================

^表示的是字符串的开头

$表示字符串的结尾。


^ 和 $ 就表示的是字符串的两个特征。一个表示开头的特征,一个表示结尾的特征


^abc.*xyz$     ^abc122345xyz$   

^abcdefg$     ^abcdefg


fdsfdsfxyz   xyz$



===========================================
a[0-9]b
a\db

\d等价于[0-9]
digital

\D   [^0-9]


\s 表示所有那些空白符,不可见字符
a\s*b
ab
a                                              




b

\S    就是除了\s以外的所有字符。



=================================================
\w [0-9a-zA-Z_]  
word表示单词字符。

\W 就是除了\w之外的所有其他字符。

\b表示单词的边界。 (断言,只判断,不匹配。)

============================================

.


下面这几种方式就可以表示任意的单个字符出现在ab之间。
a[\s\S]b
a[\d\D]b
a[\w\W]b






#实战

1:新建控制台应用程序

2:贴入以下代码,可以一个模块一个模块的测试






尾声

正则表达式在线测试    http://tool.oschina.net/regex/
















上一篇:mysql如何修改root用户的密码
下一篇:Java Refactor——重新组织你的Java代码
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2020-5-5 16:32:41 | 显示全部楼层
常用的正则表达式大全
https://www.itsvse.com/thread-9181-1-1.html
(出处: 架构师_程序员)
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|Archiver|手机版|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2020-7-12 19:54

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表