.......
最终就是要求所有这些表达式组合起来,使得不论输入多少个大写字符,都会被转化为小写。
我在atftpd的pcre功能中需要我将大写的请求文件转化为小写,所以需要一个rules文件。
下面是pcre的rules的说明
The left hand side is the expression to match, the right hand side is the
substitution. This is equivalent to perls s/// statement
没学过perl,稍微看了一下perl的表达式说明,没想到方法......
这个功能能实现吗?
D:\>echo hello | perl -plne "s/.*/\U$&/g"
HELLO
这个功能不难,但是要求必须用s///的形式,而且后面不能加第三个参数,不能是s///g这样的形式。 不过可以采用多个这样的表达式。 例如 s/A/a/ s/B/b/ s/AB/ab/ ......... ....... 最终就是要求所有这些表达式组合起来,使得不论输入多少个大写字符,都会被转化为小写。 我在atftpd的pcre功能中需...
以下代码可以将SQL语句中的关键字改为大写,如create改为CREATE,Order改为ORDER,disTinCt改为DISTINCT,另外特别注意的是只有
perl
才支持/U替换选项
use strict;use warnings;
my $str;$str="where create Order By disTinCt";if ($str=~ /(where|create|Order|B...
\U
转
义符会将其后的所有字符
转
换成大写的
$_ = "I saw Barney with Fred.";
s/(fred|barney)/\U$1/gi; # I saw BARNEY with FRED
\L
转
义符会将其后的所有字符
转
换成
小写
的
s/(fred|barney)/\L$1/gi; # I saw barney with fred
默认情况下\U和\L
转
义符会影响之后全部的(替换)字符串,可以使用\E关闭大
小写
转
换的功能
s/(\w+) with (\w+)/\U$2\E
1.用s///替换
此操作可将指定变量合乎模式的部分替换为另一个字符串。
[code="
perl
"]$_ = "He's out bowling with Barney tonight.";
if ( s/Barney/Fred/){
print "$_"...
这个
正则表达式
匹配一个
字母
e后面跟着1个或多个
字母
d的字符串,比如"ed", "edd", "edddd"等等。反过来,"e", "ed ", "edddx"等字符串都不会被匹配。
其中\符号是用来
转
义d字符,因为d在
正则表达式
中有特殊含义,表示匹配任意数字。通过在d前面加上\符号,我们告诉
Perl
正则表达式
引擎我们要匹配的是
字母
d本身,而不是数字。同时,+表示匹配前面的字符1次或多次。