本篇日志先主要讨论 RegExp 对象的部分方法,RegExp 对象定义了两个用于模式匹配的方法,它们是exec()
和test()
下面我们逐一进行讲解
。呵,和上篇日志一样的介绍,看来套话,果然适用于多个场合。嗯。
exec() 检索字符串中的指定值,返回值是被找到的值,如果没有发现匹配,则返回 null:
主要的RegExp模式匹配方法是exec(),其与上一篇介绍的String对象的match方法相似,只不过它是以字符串为参数的RegExp方法,而不是以RegExp对象为参数的字符串方法。呼,这一句有点像绕口令,没办法,书上的原话,抄过来让大家乐一乐,呵。exec()方法在一个字符串中检索匹配,如果没有找到任何匹配返回null,如果它找到了一个匹配,将返回一个数组。
就像方法match()为非全局检索返回的数组一样。这个数组的元素0包含的是与正则表达式相匹配的字符串,余下的所有元素包含的是与子表达式相匹配的子串,而且属性index包含了匹配发生的字符的位置,属性input引用的是被检索的字符串。
/*
i is 0 http://www.xiaoxiaozi.com/index.php
i is 1 http
i is 2 www.xiaoxiaozi.com
i is 3 index.php
i is index 11
i is input my home is http: ......
JavaScript的正则表达式支持布尔操作,除了作为 选择的“布尔或”操作之外,正则表达式还支持分组和引用
。其实选择、分组和引用的作用分别为:指定选择项、对子表达式分组和引用 前一子表达式的特殊字符。
正则表达式的选择:
所谓选择即在多个条件里面选择一个,比如说卖水果的大爷说送你个水果,你可以选择“梨”,“苹果”,“西瓜”中的任何一个。当然你会选择西瓜,呵呵。
字符”|”用于分隔供选择的字符
,例如/西瓜|梨|苹果/匹配的是“西瓜”,“梨”,或者是“苹果”。同样我要
是想根据昨天讲过的字符类去匹配一些规则,比如我想匹配3个数字,或者是4个小写字母就可以用模式/\d{3}|[a-z]{4}/,呵呵,咋样?即了解
了选择,又用上了字符类,同时呢我们还用到了重复,这几天讲的东西都复习了一遍,哈哈。
选择项是从左到右考虑,直到发现了匹配项。如果左边的选择项匹配,则忽略右边的匹配项,即使它产生更好的匹配。
其实上面的话是很好理解的,还是拿大爷送你水果的例子,大爷第一次拿出西瓜,问你要不要?如果你选择了西瓜,大爷自然不会再问你要不要苹果或者梨了。而 ......
JavaScript正则表达式的用法
正则表达式是一种可以用于模式匹配和替换的强大工具,在很多语言中都可以应用。JavaScript对正则表达式提供了很好的支持,
Javascript中有一个正则表达式对象RegExp。该对象提供了大量的属性和方法来处理正则表达式,同时,String对象也提供了相关的方法来
处理正则表达式,在Web应用中,经常使用正则表达式来验证用户输入的信息,例如在用户注册过程中,验证输入的Email地址是否合法。以下我们就介绍一
下正则表达式的基本用法。
JavaScript正则表达式的基本用法
正则表达式的作用主要有三:
验证数字是否符合特定模式;
利用正则表达式找到特定文本而后删除或者替换文本;
按模式匹配在字符串中查找查找匹配子字符串。
Javascript中使用正则表达式的方法有二:
一是使用RegExp对象
其基本语法为:var rx=new RegExp(pattern[,flags]);
,其中参数pattern是一个字符串,表示要使用的正则表达式模式,参数flag为一个可选的字符串,表示如何应用模式的标志,多种标志可以组合使用。
主要有三种模:g;全文查找出现的所有模式;i:忽略大小写;m:多行查找;
二是使用正则表达式直接量 var rx=/pattern/flags;
pattern ......
浅析C# 中object sender与EventArgs e
一、了解C#中的预定义事件处理机制
在写代码前我们先来熟悉.net框架中和事件有关的类和委托,了解C#中预定义事件的处理。
EventArgs是包含事件数据的类的基类,用于传递事件的细节。
EventHandler是一个委托声明如下
public delegate void EventHandler( object sender , EventArgs e )
注意这里的参数,前者是一个对象(其实这里传递的是对象的引用,如果是button1的click事件则sender就是button1),后面是包含事件数据的类的基类。
下面我们研究一下Button类看看其中的事件声明(使用WinCV工具查看),以Click事件为例。
public event EventHandler Click;
这里定义了一个EventHandler类型的事件Click
前面的内容都是C#在类库中已经为我们定义好了的。下面我们来看编程时产生的代码。
& ......
一、定义
String.Format是将指定的 String类型的数据中的每个格式项替换为相应对象的值的文本等效项。
如:
(1)
string p1 = "Jackie";
string p2 = "Aillo";
Response.Write(String.Format("Hello {0}, I'm {1}", p1, p2));
(2)
Response.Write(String.Format("Hello {0}, I'm {1}", "Jackie", "Aillo"));
这二者的效果是一样的。都是将最后面的两项的值分别替换第一项的{0}和{1}。
输出的结果是:Hello Jackie, I'm Aillo
二、String.Format的多格式定义:
这里所谓的多格式是指一个格式项中可以定义1~3个格式参数,每种格式参数用分号(;)隔开。带2个和3个格式参数的格式项所对应的值必须是数值类型的,这样才能判断是否为负数、正数、零。
带1个格式参数:
//以科学计数法的格式输出
double p1 = 1000000;
Response.Write(String.Format("{0:E2}", p1));
带2个格式参数:
/*当格式项对应的值为非负数,则选择第一种格式;值为负数则选第二种格式*/
double p1 = 10000;
double p2 = -2420.50;
Response.Write(String.Format("{0:#,###0.00;#,###0.000;}<BR>", p1));
Response.Write(String.Format("{0: ......
1. 通过 get { return HostApplicationServices.WorkingDatabase; } 得到当前工作数据库,即当前文档被装入CAD环境后得到的所有东西。
2. 属性和方法:
构造函数:
属性:
Attmode 设置
mode
为数据库的
ATTMODE
值,
输入需要的
ATTMODE
系统变量值(必须在范围
0-2
之间
Aunits 输入需要的
AUNITS
系统变量值(必须在
0-4
的范围中
Auprec 输入需要的
AUPREC
系统变量值
Angbase 设置数据库使用
angle
作为
ANGBASE
值。
输入需要的
ANGBASE
系统变量角(弧度
Angdir 输入布尔值,表示需要的
ANGDIR
系统变量值,设置
dir
为数据库的
ANGDIR
值。
false
的值为
0
。
true
的值为
1
。
BlockTableId
CurrentSpaceId
当前块表记录ID
Clayer
Elevation 获取模型空间的高度
Extmax
获取模型空间的最大几何范围点
Extmax
获取模型空间的最小几何范围点
Filename
GroupDictionaryId 获取数据库的组字典ID
Insbase
获取当前模型空间的插入基点,wcs坐标系下
Insunits 输入表示图形使用的长度测量的单位的类型,
改变这个值不会改变数据库中的任何比例或坐标数据
IsPartiallyOpened
LastSavedAsMaintenance ......