找回密码
 注册
查看: 12780|回复: 0

perl语言正则表达式大小写转换

[复制链接]
发表于 2011-11-14 20:51:08 | 显示全部楼层 |阅读模式
有时,希望确保被替换的字符串均是大写的(或者不是,视情况而定)。这在Perl 中只需使用某些修饰符就能办到。\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.”
默认时,会影响到剩余的(替换的)字符串。可以使用\E 来改变这种影响:
s/(\w+) with (\w+)/\U$2\E with $1/I; #$1 现在是“I saw FRED with barney.”
使用小写形式时(\l 和\u),只作用于下一个字符:
s/ (fred|barney)/\u$1/ig; #$_现在是“I saw FRED with Barney.”
也可以同时使用它们。如使用\u 和\L 表示“第一个字母大写,其它字母均小写”◆:
◆\L 和\u 可以按任意顺序出现。Larry 意识到人们有时可能按相反顺序使用它们,因此他将Perl 设计成,在这两种情况下都是将第一个字
母大写,其余的小写。Larry 是个非常好的人。
s/(fred|barney)/\u\L$1/ig; #$_现在为“I saw Fred with Barney.”
这些在替换中出现的大小写转换的修饰符,也可在双引号中使用:
print “Hello, \L\u$name\E, would you like to play a game?\n”;
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|小黑屋|生物统计家园 网站价格

GMT+8, 2024-11-21 20:04 , Processed in 0.019728 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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