柔情似水 发表于 2015-1-16 22:28:50

ASP.NET网页设计.NET正则表达式利用初级技能之事情特性...

来吧!老师们!我代表千千万万的asp.net/C#的初学者在这里呼唤着!初级|技能|正则  语法:??,*?,+?,{n}?,{n,m}?
  涵义:复杂说,前面的这个?(lazy符)告知正则引擎,它后面的表达式婚配到最短的婚配项就不必婚配下往了,如??,?自己婚配0-1个婚配项,那末??就取最短的,婚配0个项就不婚配下往了,同理,*?婚配0个,+?婚配1个,{n}?婚配n个,{n,m}?婚配n个。当用@”w*?”婚配”abcd”时,会有五次乐成婚配,每次都婚配的了局都是空字符串,为何会是5次呢,这是由于正则引擎在婚配一个表达式时是一个字符一个字符对照下往的,每乐成婚配一次,就行进一下。
  判别表达式
  语法:
  1、A|B,这个是最基础的,A大概B,实在这个不克不及算判别
  2、(?(expression)yes-expression|no-expression),个中no-expression为可选项,意为,假如expression建立,则请求婚配yes-expression,不然请求婚配no-expression
  3、(?(group-name)yes-expressioin|no-expression),个中no-expression为可选项,意为,假如名为group-name的组婚配乐成,则请求婚配yes-expression,不然请求婚配no-expression
  判别表达式仍是很好了解的,惟有一点要注重:@"(?(A)A|B)"不克不及婚配"AA",为何呢?要怎样写才干婚配呢,人人先想一想……
  我们应当如许写Regex:@”(?(A)AA|B)”,请注重,判别式中的内容其实不会做为yes-expression或no-expression表达式的一部分。
  .net的正则引擎事情特性
  .net的正则引擎事情体例年夜多半和我们“想固然”的体例一样,只是有几点要注重:
  1、.NETFramework正则表达式引擎尽量的婚配多的字符(贪心)。恰是因为这一点,以是,不要用@"<.*>(.*)</.*>"如许的正则式来试图找出一个HTML文档中的一切innerText。(我也恰是在网上看到有人如许写正则式才决意要写《正则表达式初级技能》的,呵呵)
  2、.NETFramework正则表达式引擎是回溯的正则表达式婚配器,它并进了传统的非断定性无限主动机(NFA)引擎(比方Perl、Python利用的引擎)。这使其有别于更快的、但功效更无限的纯粹则表达式断定性无限主动机(DFA)引擎。.NETFramework正则表达式引擎只管婚配乐成,以是,当@"w+.(.*).w+"中的.*把www..csdn.net中的.csdn.net都婚配完了,让前面的.w+没得字符往婚配时,引擎会举行回溯,以失掉乐成的婚配。
 
  NETFramework正则表达式引擎还包含了一组完全的语法,让程序员可以利用回溯引擎。包含:
  “惰性”限制符:??、*?、+?、{n,m}?。这些惰性限制符唆使回溯引擎起首搜刮起码数量的反复。与之相反,一般的“贪心的”限制符起首实验婚配最年夜数量的反复。
  从右到左婚配。这在从右到左而非从左到右搜刮的情形下非常有效,大概在从形式的右边部分隔始搜刮比从形式的左边部分隔始搜刮更加无效的情形下非常有效。
  3、.NETFramework正则表达式引擎在(expression1|expression2|expression3)如许情形下,expression1老是开始失掉实验,再顺次是expression2和expression3
publicstaticvoidMain()
{
strings="THINisaasp.netdeveloper.";
Regexreg=newRegex(@"(w{2}|w{3}|w{4})",RegexOptions.Compiled|RegexOptions.IgnoreCase);
MatchCollectionmc=reg.Matches(s);
foreach(Matchminmc)
Console.WriteLine(m.Value);
Console.ReadLine();
}
  输入了局是:‘TH’‘IN’‘is’‘as’‘ne’‘de’‘ve’‘lo’‘pe’

  附表

本义符申明一样平常字符除.$^{[(|)*+?外,其他字符与本身婚配。a与响铃(警报)u0007婚配。在正则表达式中,暗示单词界限(在w和W之间),不外,在[]字符类中,暗示退格符。在交换形式中,一直暗示退格符。        与Tab符u0009婚配。与回车符u000D婚配。v与垂直Tab符u000B婚配。f与换页符u000C婚配。
与换行符u000A婚配。e与Esc符u001B婚配。40将ASCII字符婚配为八进制数(最多三位);假如没有前导零的数字只要一名数大概与捕捉组号绝对应,则该数字为后向援用。比方,字符40暗示空格。x20利用十六进制暗示情势(刚好两位)与ASCII字符婚配。cC与ASCII把持字符婚配;比方,cC为Ctrl-C。u0020利用十六进制暗示情势(刚好四位)与Unicode字符婚配。在前面带有不辨认为本义符的字符时,与该字符婚配。比方,*与x2A不异。字符类申明.婚配除
之外的任何字符。假如已用Singleline选项做过修正,则句点字符可与任何字符婚配。与指定字符会合包括的任何单个字符婚配。[^aeiou]与不在指定字符会合的任何单个字符婚配。利用连字号(C)同意指定一连字符局限。p{name}与{name}指定的定名字符类中的任何字符都婚配。撑持的称号为Unicode组和块局限。比方,Ll、Nd、Z、IsGreek、IsBoxDrawing。可使用GetUnicodeCategory办法找到某个字符所属的Unicode种别。
P{name}与在{name}中指定的组和块局限不包含的文本婚配。w与任何单词字符婚配。等效于Unicode字符种别。假如用ECMAScript选项指定了切合ECMAScript的举动,则w等效于。W与任何非单词字符婚配。等效于Unicode字符种别[^p{Ll}p{Lu}p{Lt}p{Lo}p{Nd}p{Pc}p{Lm}]。假如用ECMAScript选项指定了切合ECMAScript的举动,则W等效于[^a-zA-Z_0-9]。s与任何空缺字符婚配。等效于Unicode字符种别[f
        vx85p{Z}]。假如用ECMAScript选项指定了切合ECMAScript的举动,则s等效于[f
        v]。S与任何非空缺字符婚配。等效于Unicode字符种别[^f
        vx85p{Z}]。假如用ECMAScript选项指定了切合ECMAScript的举动,则S等效于[^f
        v]。d与任何十进制数字婚配。关于Unicode种别的ECMAScript举动,等效于p{Nd},关于非Unicode种别的ECMAScript举动,等效于。D与任何非数字婚配。关于Unicode种别的ECMAScript举动,等效于P{Nd},关于非Unicode种别的ECMAScript举动,等效于[^0-9]。断言申明>^指定婚配必需呈现在字符串的开首或行的开首。$指定婚配必需呈现在以下地位:字符串开头、字符串开头处的
之前或行的开头。A指定婚配必需呈现在字符串的开首(疏忽Multiline选项)。指定婚配必需呈现在字符串的开头或字符串开头处的
之前(疏忽Multiline选项)。z指定婚配必需呈现在字符串的开头(疏忽Multiline选项)。G指定婚配必需呈现在上一个婚配停止的中央。与Match.NextMatch()一同利用时,此断言确保一切婚配都是一连的。指定婚配必需呈现在w(字母数字)和W(非字母数字)字符之间的界限上。婚配必需呈现在单词界限上,即呈现在由任何非字母数字字符分开的单词中第一个或最初一个字符上。B指定婚配不得呈现在界限上。限制符申明*指定零个或更多个婚配;比方w*或(abc)*。等效于{0,}。+指定一个或多个婚配;比方w+或(abc)+。等效于{1,}。?指定零个或一个婚配;比方w?或(abc)?。等效于{0,1}。{n}指定刚好n个婚配;比方(pizza){2}。{n,}指定最少n个婚配;比方(abc){2,}。{n,m}指定最少n个但未几于m个婚配。*?指定尽量少地利用反复的第一个婚配(等效于lazy*)。+?指定尽量少地利用反复但最少利用一次(等效于lazy+)。??指定利用零次反复(若有大概)或一次反复(lazy?)。{n}?等效于{n}(lazy{n})。{n,}?指定尽量少地利用反复但最少利用n次(lazy{n,})。{n,m}?指定介于n次和m次之间、尽量少地利用反复(lazy{n,m})。
另外,小型软件代码重用价值低,没有必要跨平台;大型软件,有严格的规划、部署,不可以随意跨平台。

冷月葬花魂 发表于 2015-1-19 14:14:27

ASP在执行的时候,是由IIS调用程序引擎,解释执行嵌在HTML中的ASP代码,最终将结果和原来的HTML一同送往客户端。

再见西城 发表于 2015-1-26 16:20:18

Asp.net脚本的出现,为ASP空间带来了更高的稳定性,同时也为程序员建站提供更高环境!

变相怪杰 发表于 2015-2-4 20:02:50

对于中小项目来说.net技术是完全可以胜任,但为什么现在大型公司或网站都选择php或java呢?就是因为微软不够开放,没有提供从硬件到应用服务器再到业务应用的整套解决方案。

只想知道 发表于 2015-2-10 05:57:30

asp.net空间的支持有:ASP.NET1.1/虚拟目录/MicrosoftFrontPage2000扩展/CDONTS,同时他的网站上也提供了Asp.net的使用详解和程序源代码,相信对使用ASP.NET编程的程序员来说会非常有用哦!

简单生活 发表于 2015-2-28 22:30:11

平台无关性是PHP的最大优点,但是在优点的背后,还是有一些小小的缺点的。如果在PHP中不使用ODBC,而用其自带的数据库函数(这样的效率要比使用ODBC高)来连接数据库的话,使用不同的数据库,PHP的函数名不能统一。这样,使得程序的移植变得有些麻烦。不过,作为目前应用最为广泛的一种后台语言,PHP的优点还是异常明显的。

飘灵儿 发表于 2015-3-10 09:15:29

它可通过内置的组件实现更强大的功能,如使用A-DO可以轻松地访问数据库。

兰色精灵 发表于 2015-3-17 06:11:33

大哥拜托,Java在95年就出来了,微软垄断个妹啊,服务器市场微软完全是后后来者,当年都是Unix的市场,现在被WindowsServer和Linux抢下大片,包括数据库也一样。

精灵巫婆 发表于 2015-3-24 00:01:00

在asp.net虚拟主机的服务提供商中,目前首推的是CNNIC的其中一家域名注册机构---时代互联(www.now.net.cn),他们早在2001年微软刚推出Asp.net时就推出了对应的Asp.net虚拟主机了,经笔者的使用测试,他提供的Asp.net性能非常的稳定,版本也会定期的更新,目前他的
页: [1]
查看完整版本: ASP.NET网页设计.NET正则表达式利用初级技能之事情特性...