首页 > 编程知识 正文

正则文法和正则表达式的相互转化,perl中正则表达式匹配空格

时间:2023-05-06 02:32:07 阅读:61087 作者:4206

正则表达式除了确定字符串是否与模式匹配外,还可以替换匹配的字符串。

1 .正则表达式替换语法默认正则表达式替换默认正则表达式替换次数1.1缩写语法缩写是对内置变量$_执行正则替换操作的缩写常见词数组遍历,缩写使用绑定操作符=~ #表示内置变量的值$_='hi,PPI #将内置变量$_设置为s/hi/hello/; print '$_n '; 1.2标准语法#普通字符串$str='hi,perl '; #将字符串转换为$str=~ s/hi/hello/; #替换后的字符串print '$strn '; 1.3自定义分隔符正则替换也支持自定义分隔符,但替换运算符需要三个符号,因此略有不同。

非成对分隔符: #匹配模式#替换内容#成对分隔符: {匹配模式}{替换内容} #普通字符串$str='http://www.baidu.com '; #字符串替换#str=~ s{http://}{https://}; $str=~ s#http://#https://#; #替换后的字符串print '$strn '; 2 .置换修饰符2.1正规修饰符正规置换式除了/s、/i、/x修饰符外,还支持g、r修饰符

修饰符示例I可以忽略大小写s/ab/cd/i,用cds中的默认元字符替换ab、ab等。 与换行符不匹配。 n,s添加限定将匹配换行符s/a.b/ab/s。 如果将aeb,anb添加到abx允许模式中,则可以在模式中的任意位置添加任意数量的空格字符,并且要使可以添加的空格字符匹配,必须用SG全局替换。 默认情况下,只有第一个匹配的s/l/L/g被替换,所有小写字母l替换为大写字母的Lr不替换原始字符串,而是返回被替换的新字符串。 默认情况下替换原始字符串,并返回替换次数$new=$str=~ s/l/L/r; 2.2替换模式特殊符号正则替换表达式支持正则匹配表达式定义的元字符,以及一些附加字符。

元字符的含义$nn是1,2,3…,应该是以匹配模式捕获的第n个结果l的第一个字符的小写字母,只有l之后的第一个字符的小写字母u,后跟第一个字符的大写字母u 返回结果对于正则替换,默认情况下返回替换次数,并修改原始字符串。 添加修饰符/时$cnt=$str=~ s/l/L/g; #输出结果-替换次数: 3、原始字符串:heLLo、worLdprint '替换次数: $cnt、原始字符串:$str n '; 3.2新字符串$str='hello,world '; $new=$str=~ s/l/L/gr; #输出结果-原始字符串: hello、world、新字符串: hello、worLdprint '原始字符串: $str、新字符串:$new n '; 4 .综合示例4.1正则返回全局替换次数#常规字符串$str='Hello,I am a good boy!' 定义; #全局替换,将小写o替换为大写O$cnt=$str=~ s/o/O/g; print '替换次数: $cnt n '; print '替换后的内容: $str n '; 4.2正则返回替换内容#常规字符串$str='Hello,I am a good boy!' 定义; #正则替换,原始字符串$new=$str=~ s/Hello/hi/; print '原始字符串: $str n '; print '新字符串: $new n '; 4.3替换正则大小写#普通字符串$_='HELLO,I am a good boy!' 定义; #匹配值,小写首字母。 替代结果: hELLO,I am a good boy! $str1=s/(Hello )/(L$1/r; #匹配的值,全部小写。 替代结果: hello,I am a good boy! $str2=s/(Hello )/(L$1/r; #匹配的值,开头字母为大写。 替代结果: HELLO,I am a Good boy! $str3=s/(good )/)/u$1/r; #匹配的值,全部大写。 替代结果: HELLO,I am a GOOD boy! $str4=s/(good )/)/U$1/r;

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。