正则表达式常用通配符
发布时间:2025-05-25 01:21:16 发布人:远客网络
一、正则表达式常用通配符
正则表达式中的常用通配符是强大的文本处理工具,它们在匹配模式时扮演着关键角色。首先,让我们来看看几个核心通配符:
1. `\b`:这个符号用于匹配单词的边界,包括空格、标点或换行,但它不会匹配这些字符本身。例如,`\bhi\b`只匹配独立的"hi",不包括"history"中的"hi"。
2. `.`:点号(.)匹配除换行符外的任何字符,如 `.*`表示任意数量的非换行字符。
3. `*`:星号(*)用于表示前面的内容可以重复任意次,如 `\d{5,12}`匹配5到12位的数字。
4. `\d`:匹配数字,`\d{2}`代表连续两个数字。
5. `\s`:匹配所有空白字符,包括空格、制表符和换行。
6. `\w`:匹配字母、数字、下划线或汉字,是字母或数字的宽泛表示。
7. `+`:匹配一个或多个连续的字符,如 `+`可以用于匹配连续的数字。
8. `^`和 `$`分别表示字符串的开始和结束,如 `^\d{5,12}$`用来匹配特定格式的电话号码。
9.字符转义:对于需要保留的特殊字符如 `.`、`*`,需要在其前面加上反斜杠 `\`,如 `acfun\.cn`和 `C:\\windows`。
10.分组和分支:正则表达式可以包含条件分支,如 `[aeiou]`匹配元音字母,`0\d{2}-\d{8}|0\d{3}-\d{7}`匹配不同的电话号码格式。
11. IP地址的匹配:`((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)`用于识别IP地址。
12.反义匹配:`\W`匹配非字母、数字或汉字字符,`\S`匹配非空白字符,`\D`匹配非数字字符。
13. `\B`:匹配非单词边界,`[^x]`匹配除指定字符外的任意字符。
14.尖括号分组:`[^aeiou]`用于匹配除指定字母外的任意字符,`.+>`匹配以"a"开头且被尖括号包围的字符串。
以上这些通配符和语法结构,能够帮助我们更精细地进行文本匹配和处理。在实际应用中,根据具体需求灵活运用这些工具,可以大大提高效率。
二、正则表达式“或“的使用
正则表达式,又称规则表达式。是计算机科学的一个概念。
正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。许多程序设计语言都支持利用正则表达式进行字符串操作。例如,在Perl中就内建了一个功能强大的正则表达式引擎。正则表达式这个概念最初是由Unix中的工具软件(例如sed和grep)普及开的。
正则表达式通常缩写成“regex”,单数有regexp、regex,复数有regexps、regexes、regexen。
检查字符串是否符合正则表达式中的规则,有一次不匹配,则返回false。如:
String reg="[a-zA-Z]\\d?";//次表达式表示字符串的第一位只能是字母,第二位只能是数字或没有boolean flag=str.matches(reg);//返回结果为true。
所谓切割,即是按一定的规则将字符串分割成多个子字符串,如:
String str="zhangsan,lishi,wangwu"。
String reg=",";//表示以逗号作为切割符。
String[] arr=str.split(reg);//返回结果为{“zhangsan”,"lisi","wangwu}。
即将字符串中符合规则的字符替换成指定字符,如:
String str="sfhjhfh136hjasdf73466247fsjha8437482jfjsfh746376"。
str.replaceAll("\\d{3,}","#");//表示将连续出现三个或三个以上的数字替换成“#”。
参考资料来源:百度百科-正则表达式
三、Linux正则表达式与通配符
正则表达式:在计算机科学中,是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串。在很多文本编辑器或其他工具里,正则表达式通常被用来检索或替换那些符合某个模式的文本内容。正则表达式这个概念最初是由Unix中的工具软件(例如sed和grep)普及开的。
只有掌握了正则表达式,才能全面地掌握 Linux下的常用文本工具(例如:grep、egrep、GUN sed、 Awk等)的用法
grep-v代表反选,反向选择匹配到的内容
正则表达式分为三类(man grep可以看到,分别是basic RegExs,extended RegExs,perl RegExs)
1、基本的正则表达式(Basic Regular Expression又叫 Basic RegEx简称 BREs)
2、扩展的正则表达式(Extended Regular Expression又叫 Extended RegEx简称 EREs)
3、Perl的正则表达式(Perl Regular Expression又叫 Perl RegEx简称 PREs)
b.处理过程:查找文本文件中是否包含要查找的“关键字”(关键字可以是正则表达式),默认返回匹配的该行的内容
c. grep|egrep处理文件时,按行处理|
| sed| sed| sed-r|-| a.处理对象:文本文件
b.处理操作:对文本文件的内容进行查找、替换、删除、增加等操作
c. sed在处理文本文件的时候,按行处理|
| awk|-| awk|-| a. awk处理的对象:文本文件
b. awk处理操作:主要是对列进行操作|
注意:egrep或 sed-r默认使用扩展正则表达式(EREs),一般特殊字符({})可以不转义
grep-E以及egrep(Extend Regular Expression)
Linux通配符和三剑客的正则表达式是不一样的,因此,代表的意义也有较大的区别。
通配符一般用户命令行bash环境,而linux正则表达式用于grep, sed, awk场景。
示例:*的使用:代表任意0-N个字符,代表所有字符