重写url必须掌握正须表式

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

重写url必须掌握正须表式
正须表式是一须可以用于模式匹配和替须的强有力的工具。

我须可以在乎所有的基于达几UNIX系须的工具中到正须表找式的身影例如达vi须须器Perl或PHP脚本须言以及awk 或sed shell程序等。

此外象JavaScript须须客须端的脚本须言也提供了须正须表式的支持。

由此可须正须表式已须超出了某须须言或某系须的局限成须人须须接受的念和功能。

达达个广概正须表式可以须用须通须使用一系列的特殊字符建匹配模式然后把匹配模式据文件、程序须入以及达构与数WEB须面的表须须入等目须须象须行比须根据比须须象中是否包含匹配模式须行相须的程序。

须例须正须表式的一最须普遍的须用就是用于须须用须在须须入的须件地址的格式是否正。

如果通须正须表式须须用须须件地址来达个确达的格式正用须所的表须信息被正常须理 反之如果用须须入的须件地址正须表的模式不匹配须出提示信息确填写将会与达将会要求用须重新须入正的须件地址。

由此可须正须表式在确达WEB须用的须须判中具有须足须重的作用。

断基本须法在须正须表式的功能和作用有了初步的了解之后我须就具看一下正须表式的须法格式。

达来体达正须表式的形式一般如下 达/love/
其中位于“/”定界符之须的部分就是要在目须须象中须行匹配的模式。

用须只要把希望须匹配须象的模式容放入“将找内
/”定界符之须可。

须了能须使用须更加活的定制模式容正须表式提供了须须的“元字符”。

所须元字符就是指那些在正须表式中具即灵内达达有特殊意须的须用字符可以用须定其前须字符 位于元字符前面的字符 在目须须象中的出须模式。

来即须须常用的元字符包括 “” “”以及“”。

其中“”元字符须定其前须字符必须在目须须象中须须出须一次或多次“”元字符须定其前须字符必须在目须须象中出须零次或须须多次而“”元字符须定其前须须象必须在目须须象中须须出须零次或一次。

下面就须我须看一下正须表式元字符的具须用。

来达体/fo/ 因须上述正须表式中包含“达”元字符表示可以目须须象中的“与fool” “fo” 或者“football”等在字母f后面须须出须一或多字母个个o的字符串相匹配。

/eg/ 因须上述正须表式中包含“达”元字符表示可以目须须象中的“与easy” “ego” 或者“egg”等在字母e后面须须出须零或多字母个个g的字符串相匹配。

/Wil/ 因须上述正须表式中包含“ ”元字符表示可以目须须象中的“达与Win” 或者“Wilson”等在字母i后面须须出须零或一个字母个l的字符串相匹配。

除了元字符之外用须须可以精指定模式在匹配须象中出须的须率。

例如确/jim26/ 上述正须表式须定字符达m可以在匹配须象中须须出须2-6次因此上述正须表式可以同达jimmy或jimmmmmy等字符串相匹配。

在须如何使用正须表式
有了初步了解之后我须看一下其重要的元字符的使用方式。

达来它几个s 用于匹配须空格符包括个tab须和须行符 S 用于匹配除须空格符之外的所有字符 个
d 用于匹配从0到9的字 数w 用于匹配字母字或下须字符 数划W 用于匹配所有与w不匹配的字符
. 用于匹配除须行符之外的所有字符。

须明 我须可以把s和S以及w和W看作互须逆算 运下面我须就通须须例看一下如何在正须表式中使用上述元字符。

达/s/ 上述正须表式可以用于匹配目须须象中的一或多空格字符。

达个个/d000/ 如果我须手中有一须须的须须须表那须我须可以通须上述正须表式须而易须的须到所有须须千元的款须。

份达找达除了我须以上所介须的元字符之外正须表式中须具有外一须须须特的须用字符定位符。

定位符用于须定匹配模式在目须须达另独即象中的出须位置。

须须常用的定位符包括 “” “” “b” 以及“B”。

其中“”定位符须定匹配模式必须出须在目须字符串的须须“”定位符须定匹配模式必须出须在目须须象的须尾b定位符须定匹配模式必须出须在目须字符串的须须或须尾的须界之一而“两个B”定位符须须定匹配须象必须位于目须字符串的须须和须尾须界之匹配须象不能作须目须字符串的须须也不能作须目须字符串的须尾两个内即既。

同须我须也可以把“”和“”以及“b”和“B”看作是互须逆算的须定位
符。

须例须 运两来/hell/ 因须上述正须表式中包含“达”定位符所以可以目须须象中以“与hell” “hello”或“hellhound”须须的字符串相匹配。

/ar/ 因须上述正须表式中包含“达”定位符所以可以目须须象中以“与car” “bar”或“ar” 须尾的字符串相匹配。

/bbom/ 因须上述正须表式模式以“达b”定位符须须所以可以目须须象中以“与bomb” 或“bom”须须的字符串相匹配。

/manb/ 因须上述正须表式模式以“达b”定位符须尾所以可以目须须象中以“与human” “woman”或“man”须尾的字符串相匹配。

须了能须方便用须更加活的须定匹配模式正须表式允须使
用者在匹配模式中指定某一范须而不局限于具的字符。

例如 灵达个体/A-Z/ 上述正须表式达将会与从A到Z 范须任何一大字母相匹配。

内个写/a-z/ 上述正须表式达将会与从a到z范须任何一小字母相匹配。

内个写/0-9/ 上述正须表式达将会与从0到9范须任何一字相匹配。

内个数/a-zA-Z0-9/ 上述正须表式任何由字母和字须成的字符串如“达将会与数aB0” 等相匹配。

须里需要提醒用须注意的一点就是可以在正须表式中使用“达” 把字符串须合在一起。

“”符包含的容必须同须出须在目须须象中。

因此上述正须表式无法须如号内达将与“abc”等的字符串匹配因须“abc”中的最后一字符须字母而非字。

个数
如果我须希望在正须表式中须须须似须程须须中的“或”算在
多不同的模式中任须一须行匹配的须可以使用管道符“达运个个”。

例如 /totoo2/ 上述正须表式目须须象中的“达将会与to” “too” 或“2” 相匹配。

正须表式中须有一须须常用的算符否定符“达个运即”。

我须前文所介须的定位符“与” 不同否定符“”须定目须须象中不能存在模式中所须定的字符串。

例如 /A-C/ 上述字符串目须须象中除将会与AB和C之外的任何字符相匹配。

一般须“来当”出须在“”须就被须做否定算符内运 而“当”位于“”之外或有“没”须须须被须做定位符。

当最后用须需要在正须表式的模式中加入元字符须须其匹配须象须可以使用须须符“当达并找”。

例如 /Th/ 上述正须表式目须须象中的“达将会与Th”而非“The”等相匹配。

使用须例在须正须表式有了须须全面的了解之后我须就看一下如何在达来PerlPHP以及JavaScript中使用正须表式。

达通常Perl 中正须表式的使用格式如下 达operator /
regular-expression / string-to-replace / modifiers算符一须可以是运m或s分须代表匹配算和替须算。

运运其中正须表式一须是要须行匹配或替须操作的模式可以由任意字符元字符或定位符等须成。

替须字符串一须是使用达将s算符须须须到的模式匹配须象须行替须的字符串。

最后的须用控制不同的匹配或替须方式。

例如 运找参数来
s/geed/good/在目须须象中须第一出须的将会找个geed
字串其替须须并将good。

如果我须希望在目须须象的全局范须须行多次须替须操作的须内找—可以使用“参数g”即
s/love/lust/g。

此外如果我须不需要限制匹配的大小形式的须可以使用“写参数i ”。

例如m/JewEL/i上述正须表式目须须象中的达将会与jewelJewel或JEWEL相匹配。

在Perl中使用须须的算符“运”指定正须表式的匹配须象。

例如 达flag s/abc/ABC/上述正须表式把须量达将会flag中的字串abc替须须ABC。

下面我须就在Perl程序中加入正须表式须须用须须件地址格式的有效性。

代须如下 达/usr/bin/perl get input print “Whats your email addressn” email chompemail match and display result ifemail
/a-zA-Z0-9_-a-zA-Z0-9_-.a-zA-Z0-9_-/ print“Your email address is correctn” else
print“Please try againn” 如果用须更偏须PHP的须可以使用ereg函须行模式匹配操作。

数ereg函的使用格式如下 数eregpattern string其中pattern代表正须表式的模式而达string须是须行须替须操作的目须须象。

同须是须须须件地址使用找PHP须的程序代须如下写
最后我须在看一下来JavaScript。

JavaScript 1.2中须有一功能强大的个RegExp须象可以用须行正须表式的匹配操作。

来达其中的test方法可以须须目须须象中是否包含匹配模式相
须的返回并true或false。

我须可以使用JavaScript须以下脚本须须用须须入的须件地址的有效性。


URL 重可须须日期模式写--- 正须表式之强力须用达最近忙着自己的博客程式自然而然就须到了博客中老生须须的URL重须须。

一原因是在多用须写个博客系须中的一面子须须本想拿我的个来CSDN博客
/joshualang须事来想想须是用我的空须因须须是我的博客完功之后的去所了。

吧像/blog/joshualang 如若不须行必要的URL重就出写会
/blog/default.aspxBlogerjoshualang须子的博客地址 大家要知道BLOG可须是大部分民须须筑在须上的一家须须生活中考须家的地址须近交通好同须网网另个会坏须中的家也要有好须的须牌的。

须须牌须不算太须 须不是非常面 后须在加上一堆的网个号个号体哦只须人慢慢须而生畏要看文章就要面须须须一大堆参数怕
/Articles/Default.aspxBlogerjoshualangArticl eID20070118234530是不是有什须感须了 再看看目前好多博客程式都要得到的一须效果吧
/joshua/Articles/2007/01/18/大家一看就知道须须效果的好须了须也就引到了本文的重点所在了 是的要通须须须一非常须整的字符串到我须的一目须。

个来达个
一可行的个URL须须遵循以下须准须须 来须短。

�6�1 �6�1 易于须入。

�6�1 能看出站点的须。


�6�1 “可须须”允须用须通须须除URL 的须成部分须须站点。

来致于须点就不用我多须了其须都是要突出须须须用。

来注意 须到须里就有必要看看MSDN站上网Scott Mitchell的一遍文件
/china/msdn/library/webservices/asp. net/URLRewriting.mspxpftruetop已有须家在须里将URL重的原理须得足须明了不须能下须上须文件的原始须究一下。

写确懂来研须了须效率 人的须须是须的程式须的须须更是 就直接采用宝的须件须须上以前接须没触URL重须须大致得源程式看了遍就须始上路了。

须始然不求什须技须含量了只要能写几当重成功就已感须非
常写OK了然后才是在不的重须程中出其中须须更有新思路新须须。

断写找。

所以就有了须遍文章。

目前须始。

须次须须的其须主要就是须提到的日期模式的吧URL重
写./Articles/2007/01/18/233030/joshualang.a spx 须就是要在须里须须的最须效果。

基须 须件 然也能自已 了解正须表式当写达 参数ArticleID //文章须号须型 string 须度
14 like yyyymmddhhmmss //有意须且不重须会Bloger //博主用须名须型 string 字母须须在URL重须程中遇须
的一须须就是在须须不存在的目须或文件须出须写个404须须。

在MSDN上的须遍文件提供的建须就是在程式目须下建立必要的目须目须及空的须面须麻须的是麻须千的目须需要建确数立。

然不能便就须须不存在的目须文件那我须不须须须须的目须不就行了。

就要须须我须已存在的文件既随 我的全部URL指向都是根目须Blog下的一个Default.aspx 须面然后须须加须控件须生成不同的须须功能须面 然须次要指向的须是须须面当个/Default.aspx下面的任须就是须须然是参数当URL须须了。

须就是重他的原因了。

写主角又要出须了 正须表式。

达在须里用正须表式的是太须了达真/joshualang/Articles/2007/01/18/Default.aspx 目须可能生成如下须须的你会URL重须须 写
/w616/Articles/d4/d2/d2/Default.aspx
/Default.aspxBloger1ampyear2ampmonth3ampday4 须须出的须须在须行须须须肯定是因须须须的须面不存在而须生写会404须须。

因须他须着的目须须须一直往下会你要是再建目须工程可就大了再看看下须的代须 找
/w616/Articles/d4/d2/d2/d6/Default.aspx
/Default.aspxBloger1ampyear2ampmonth3ampday4amptime5 须下多出了须须部分须人须须建目须了。

那就充分利用已存在的文件完成须任须。

没会来个吧其须一须可能有非常多人都能想到用文件名代替目须须。

想想看是不是须须。

然须须
得须正须表来构当式有一定的了解。

达好看看须须。

来吧/w516/Articles/d4 /d2 /d2 /d6.aspx
/Default.aspxArticleID2345ampBloger1 大家非常容易看出我须里用到了“ ”须“/”须行了须须而且用在了文件名里须目前的须就是构/joshualang/2007/01/18.aspx非常须然我的ArticleID就是以年月日须分秒须基须的字符串因须须须入据不用考须重须更有意须个插数而在须里用须
须也须须须须方便。

2345得到的14位须合就是我的ArticleID.通须须表日期文章须号都能非常容易须出须须。

而最后一点好须就在须行须须须表须的特须明须。

目前须我须须须须须部分 来/w516/Articles/d4 /d2 /d2.aspx
/Default.aspxArticleID234ampBloger1 依次我须能将URL须须须须须的模式
/joshualang/Articles/2007.aspx甚至/joshualang/Articles/Default.aspx是不是非常须须。

但要注意一须须了 什须事不是能须就须须的了须要考须的更有非常多比如 你个会
/joshualang/Articles/2007.aspx和
/joshualang/Articles/2007/.aspx有什须差须做到上须的须须后后者能否正常行 不能运同须
/joshualang/Articles/2007/01/08/.aspx也是不行的。

须需要定须其他须须须须须须恰如其的重效果。


份写好了大致上效果已出了 须里是完整的须须代须 来
/A-Za-zw516/Default.aspx /Default.aspxBloger1
/Articles/d4 /d2 /d2 /d16 /A-Za-zw516.aspx
/Default.aspxArticleID1234ampBloger5
/Articles/d4 /d2 /d2 /d16 /.aspx
/Default.aspxArticleID1234
/Articles/d4 /d2 /d2 /A-Za-zw516.aspx
/Default.aspxArticleID123ampBloger4
/Articles/d4 /d2 /d2 /.aspx /Default.aspxArticleID123
/Articles/d4 /d2 /A-Za-zw516.aspx
/Default.aspxArticleID12ampBloger3 /Articles/d4 /d2 /.aspx /Default.aspxArticleID12 /Articles/d4 /A-Za-zw516.aspx
/Default.aspxArticleID1ampBloger2 /Articles/d4 /.aspx
/Default.aspxArticleID1 /Articles/A-Za-zw516.aspx
/Default.aspxBloger1 /Articles/Default.aspx
/Default.aspxArticleID-1 须明 在须里须了须止用须须须须掉重要的.aspx须展名我用须名作须了文件的须须须名。

将虚称最后得到的URL:
/Articles/2007/01/18/015000/joshualang.aspx 同须放在最后的最须须将6位的须须须置须可须须须须就算须了某些字也能最方便的到和须须表须须最接数找近的列表。

在去除用须名后也不影到使用须是通须前须周须的须须
格式非常快得到和需要的文章最批配会响会你的列表。

如果用须名完好须能通须须须到特定须须段须须作者的文章列表。

找须要注意的是 用须名的格式 A-Za-z6-16 和须须须须的须序。

须须 通须须须的URL重须程后像须须存在此目须相同具有须密的格式但须得架须更方便更活写会框构灵从而得到功能和用须须上的重点提升体须须到须里。

有什须疑须须迎回须加入须须。

如果有更好的重方法非常高须能通知下本人。

吧写哦。

相关文档
最新文档