Perl之正则表达式

正则表达式(regular expression)描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。

Perl语言的正则表达式功能非常强大,基本上是常用语言中最强大的,很多语言设计正则式支持的时候都参考Perl的正则表达式。

Perl的正则表达式的三种形式,分别是匹配、替换和转化:

匹配:m//(还可以简写为//,略去m)

替换:s///

转化:tr///

这三种形式一般都和 =~ 或 !~ 搭配使用, =~ 表示相匹配,!~ 表示不匹配。

1.匹配操作符

匹配操作符 m// 用于匹配一个字符串语句或者一个正则表达式。

例如,匹配标量str中的字符串"123";

perl 复制代码
#! /usr/bin/perl
$str="正则表达式使用,匹配参数123,456,798!";
if($str=~"123")#=~表示相匹配
{
	printf("匹配成功\n");
}
else
{
	printf("匹配失败\n");
}

2.模式匹配修饰符

正则表达式变量

perl处理完后会给匹配到的值存在三个特殊变量名:

$`: 匹配部分的前一部分字符串

$&: 匹配的字符串

$': 还没有匹配的剩余字符串

示例:

perl 复制代码
#! /usr/bin/perl
$str="正则表达式使用,匹配参数123,456,798!";
print "原始字符串:$str\n";
if($str=~"123")#=~表示相匹配
{
	
	printf("匹配成功,匹配字符串之前内容:$`\n");
	printf("要匹配的字符串:$&\n");
	printf("匹配的字符串之后的内容:$'\n");
}
else
{
	printf("匹配失败\n");
}

不区分大小写示例:

perl 复制代码
#! /usr/bin/perl
$str="hello,welcomewByQ";
if($str=~/WBYQ/i) #i表示不区分大小写
{
	print "匹配成功,匹配字符串:$&\n";
	print "匹配前面字符:$`";
}

示例:

perl 复制代码
[wbyq@wbyq 0709]$ ./1.pl
匹配成功,匹配字符串:wByQ
匹配前面字符:hello,welcome

3.替换操作符

替换操作符s///是匹配操作符的扩展,使用新的字符串替换指定的字符串。基本格式如下:

格式:s/PATTERN/REPLACEMENT/;

PATTERN 为替换内容;

REPLACEMENT 为要替换的字符串;

示例:

perl 复制代码
#! /usr/bin/perl
$str="hello,wbyq,welcome!";
print "$str\n";
$str=~s/wbyq/WBYQ/; #将"wbyq"替换为"WBYQ"
print "$str\n";

运行效果:

perl 复制代码
[wbyq@wbyq 0709]$ ./1.pl
hello,wbyq,welcome!
hello,WBYQ,welcome!

4.替换操作修饰符

替换操作修饰符如下表所示:

5.转化操作符

以下是转化操作符相关的修饰符:

perl 复制代码
#! /usr/bin/perl
$str="hello,welcomewByQ";
$str=~tr/a-z/A-Z/;#将所有的小写转换为大写
print "$str\n";
$str="hello,aaa,bbb,ccc,DDD";
print "原字符串:$str\n";
$str=~tr/a-z,A-Z//s; #将重复的字符删除
print "原字符串:$str\n";

运行效果:

perl 复制代码
[wbyq@wbyq 0709]$ ./1.pl
HELLO,WELCOMEWBYQ
原字符串:hello,aaa,bbb,ccc,DDD
原字符串:helo,a,b,c,D
相关推荐
长城20245 天前
HTML5中表单的pattern属性解析
前端·正则表达式·html·html5·pattern·pattern属性·pattern正则表达式
Gss7776 天前
Linux 正则表达式详解(基础 + 扩展 + 实操)
linux·运维·正则表达式
黑客思维者6 天前
正则表达式(九)网络安全:检测SQL注入攻击 + 检测XSS跨站脚本 + 扫描敏感信息泄露 + 匹配暴力破解异常IP
sql·web安全·正则表达式
黎雁·泠崖6 天前
Java常用类核心详解(七):正则表达式 Regex 从入门到实战
java·开发语言·正则表达式
秀儿还能再秀6 天前
正则表达式核心语法 + Python的 re 库中常用方法
python·正则表达式
xcLeigh6 天前
Python入门:Python3 正则表达式全面学习教程
python·学习·正则表达式·教程·python3
数据知道6 天前
MongoDB 正则表达式查询:在 MongoDB 中实现模糊搜索与索引优化陷阱
数据库·mongodb·正则表达式
A懿轩A6 天前
【Java 基础编程】Java 正则表达式实战:Pattern/Matcher、元字符与常用正则,验证与提取必备
java·开发语言·正则表达式
石牌桥网管6 天前
正则表达式:匹配不包含指定字符串的文本
java·javascript·python·正则表达式·go·php