| 订阅 | 在线投稿
分享
 
 
 

使用Perl常规表达式进行匹配

2008-12-22 08:08:04 编辑來源:互联网 国际版 评论
 
 
本文为【使用Perl常规表达式进行匹配】的汉字拼音对照版显示拼音
  changqiyilaiPerlyiqiduichangguibiaodashideguyouzhichiyizhishifeichangliuxingdewenbenchuligongjuzaizhepianrumenxingwenzhangzhongwomenjiangdailingnijiandanlejieruhezainizijidechengxuzhong使shiyongchangguibiaodashishixiangengjiaqiangdadewenbensousuohetidaigongneng

  womenshouxianlejiezuijiandandechangguibiaodashipipeiruguozaizifuchuanzhongzhaodaoxiangpipeidemoshipipeicaozuojiufanhuizhenzhiyincixiamiandebiaodashi

  $string =~ m/text/

  zhiyouzaibianliang$stringzhongdezifuchuanbaohanzizifuchuantextshicaifanhuizhenzhizheshizuijibendechangguibiaodashitaduimeigezifujinxingzhuzipipeidangranzhezhishiduichangguibiaodashizuoyongdeyigechangshiyixuyaochazhaoyiextjieyidesigezimudedanciweiliweidadaozhegemudewomen使shiyongyigeteshudezifu.changguibiaodashizhongdejuhaogaosuPerlpipeiqizhongderenhedandudezifuyincixiamianzhegebiaodashi

  $string =~ m/.ext/

  jiangyudancitexthenextpipei

  buguozhegebiaodashibingfeiwanmeiyinweitayubaohanextdegengchangdancideyibufenxiangpipeirudextrousheflextimewomenkeyi使shiyongmaozifulaixianzhipipeideweizhi^zifupipeizifuchuandekaitouyinci

  $string =~ m/^.ext/

  yudextrouspipeidanbuyucontextpipei

  tongyang$zifupipeizifuchuandejieyi

  $string =~ m/.ext$/

  yucontextpipeidanbuyudextrouspipei

  ruguonizhixiwangpipeiyiextjieyidesigezimudezifuchuannamenikeyizuhe使shiyongshangmiandelianggebiaodashixiangzheyang

  $string =~ m/^.ext$/

  xianzairuguonixuyaopipeiyizugeidingdezifuerbushijuhaoweizhiderenhezifunagaizenmebannechangguibiaodashitongguo使shiyongfangkuohaotigongyigefangfayixiamiandebiaodashiweili

  $string =~ m/^[tT]ext$/

  zhegebiaodashizhiyudancitextheTextpipeiyiduifangkuohaojiangzhuanhuanqizhongderenhedangezifuzhegegongnengxiangdangqiangdaliru

  $string =~ m/[aeiouAEIOU]/

  ruguo$stringbianliangzhonghanyouyuanyinzeshangmiandelizifanhuizhenzhi

  ruguokuohaozhongdediyigezifushi^zheshitajiubushiyigemaozifuershizhixingfeicaozuopipeibuzaikuohaoneiderenyizifuyinciruguo$stringbianliangzhongzhibaohanfuyinhuobiaodianfuhaokeyiduishangmiandelizijinxingtiaozheng使shitafanhuizhenzhi

  $string =~ m/[^aeiouAEIOU]/

  fangkuohaofuhaohuankeyizhidingzifudefanweirangnibubiliejuyizhengchuanlianxudeshuzihuozimuliruxiamiandelizipipeirenhexiaoxiezimu

  $string =~ m/[a-z]/

  daoxianzaiweizhiwomenmeicidoushichulizifuchuanzhongdeyigezifudanxuduoqingkuangxiawomenxuyaochuligengjiafuduodewentiwomen使shiyong|huofenduancaozuodadaozhegemudejiashewomenxiwangjiancha$stringbianliangzhongshifouhanyounexthuopreviouswomenkeyi使shiyongxiamiandebiaodashi

  $string =~ m/next|previous/

  ruguowomenxiwangzaizhegebiaodashizhong使shiyongmaozifunamewomenxuyaojiangxuanxiangzuheqilaijiuxiangzaisuanshuzhong使shiyongyuankuohaonayangyinciruguowomenxiwangzhipipeizifuchuankaitoubufendenexthuopreviouskeyizheyangxiebiaodashi

  $string =~ m/^(next|previous)/原文
 
 
长期以来,Perl以其对常规表达式的固有支持,一直是非常流行的文本处理工具。在这篇入门性文章中,我们将带领你简单了解如何在你自己的程序中使用常规表达式,实现更加强大的文本搜索和替代功能。 我们首先了解最简单的常规表达式:匹配。如果在字符串中找到相匹配的模式,匹配操作就返回真值。因此下面的表达式: $string =~ m/text/ 只有在变量“$string”中的字符串包含子字符串“text”时才返回真值。这是最基本的常规表达式,它对每个字符进行逐字匹配。当然,这只是对常规表达式作用的一个尝试。以需要查找以“ext”结尾的四个字母的单词为例。为达到这个目的,我们使用一个特殊的字符“.”,常规表达式中的句号告诉Perl匹配其中的任何单独的字符。因此下面这个表达式: $string =~ m/.ext/ 将与单词“text”和“next”匹配。 不过,这个表达式并非完美,因为它与包含“ext”的更长单词的一部分相匹配,如“dextrous”和“flextime”。我们可以使用锚字符来限制匹配的位置。“^”字符匹配字符串的开头,因此: $string =~ m/^.ext/ 与“dextrous”匹配,但不与“context”匹配。 同样,“$”字符匹配字符串的结尾: $string =~ m/.ext$/ 与“context”匹配,但不与“dextrous”匹配。 如果你只希望匹配以“ext”结尾的四个字母的字符串,那么你可以组合使用上面的两个表达式,像这样: $string =~ m/^.ext$/ 现在,如果你需要匹配一组给定的字符,而不是句号位置的任何字符,那该怎么办呢?常规表达式通过使用方括号提供一个方法。以下面的表达式为例: $string =~ m/^[tT]ext$/ 这个表达式只与单词“text”和“Text”匹配。一对方括号将转换其中的任何单个字符。这个功能相当强大,例如: $string =~ m/[aeiouAEIOU]/ 如果$string变量中含有元音,则上面的例子返回真值。 如果括号中的第一个字符是“^”,这时它就不是一个锚字符,而是执行“非”操作,匹配不在括号内的任意字符,因此如果$string变量中只包含辅音或标点符号,可以对上面的例子进行调整,使它返回真值: $string =~ m/[^aeiouAEIOU]/ 方括号符号还可以指定字符的范围,让你不必列举一整串连续的数字或字母,例如,下面的例子匹配任何小写字母: $string =~ m/[a-z]/ 到现在为止,我们每次都是处理字符串中的一个字符,但许多情况下我们需要处理更加复杂的问题。我们使用“|”或分段操作达到这个目的。假设我们希望检查$string变量中是否含有“next”或“previous”,我们可以使用下面的表达式: $string =~ m/next|previous/ 如果我们希望在这个表达式中使用锚字符,那么我们需要将选项组合起来,就像在算术中使用圆括号那样。因此,如果我们希望只匹配字符串开头部分的“next”或“previous”,可以这样写表达式: $string =~ m/^(next|previous)/
󰈣󰈤
日版宠物情人插曲《Winding Road》歌词

日版宠物情人2017的插曲,很带节奏感,日语的,女生唱的。 最后听见是在第8集的时候女主手割伤了,然后男主用嘴帮她吸了一下,插曲就出来了。 歌手:Def...

兄弟共妻,我成了他们夜里的美食

老钟家的两个儿子很特别,就是跟其他的人不太一样,魔一般的执着。兄弟俩都到了要结婚的年龄了,不管自家老爹怎么磨破嘴皮子,兄弟俩说不娶就不娶,老父母为兄弟两操碎了心...

网络安全治理:国家安全保障的主要方向是打击犯罪,而不是处置和惩罚受害者

来源:中国青年报 新的攻击方法不断涌现,黑客几乎永远占据网络攻击的上风,我们不可能通过技术手段杜绝网络攻击。国家安全保障的主要方向是打击犯罪,而不是处置和惩罚...

 
 
 
>>返回首页<<
 为你推荐
 
 
 
 转载本文
 UBB代码 HTML代码
复制到剪贴板...
 
 
 热帖排行
 
游乐场的可爱性感(3)
游乐场的可爱性感(2)
玛旁雍错之景
华亿农庄
 
 
王朝网络微信公众号
微信扫码关注本站公众号wangchaonetcn
 
  免责声明:本文仅代表作者个人观点,与王朝网络无关。王朝网络登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
©2005- 王朝网络 版权所有