重写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” elseprint“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重的原理须得足须明了不须能下须上须文件的原始须究一下。