ACCESS條件表達(dá)式用法實(shí)用文檔_第1頁
ACCESS條件表達(dá)式用法實(shí)用文檔_第2頁
ACCESS條件表達(dá)式用法實(shí)用文檔_第3頁
ACCESS條件表達(dá)式用法實(shí)用文檔_第4頁
ACCESS條件表達(dá)式用法實(shí)用文檔_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

ACCESS查詢設(shè)計(jì)器中,條件表達(dá)式的用法1.常量類型數(shù)字型文本型日期時間型是/否型例子1233.14“于欽鵬”“a102#2013-4-20##1988-2-914:52:30#True,yes,on,-1False,no,off,02.字段引用在查詢的條件表達(dá)式中若引用字段,需要使用[字段名]的格式。如[姓名]。如果需要指明該字段所屬的數(shù)據(jù)源,則要寫成[數(shù)據(jù)表名]![字段名]的格式(注意:英文標(biāo)點(diǎn)問題)。3.函數(shù)函數(shù)在條件表達(dá)式和VBA中都適用。數(shù)學(xué)函數(shù)格式名稱與功能示例及結(jié)果Abs(<數(shù)值表達(dá)式>)絕對值函數(shù)返回一個數(shù)的絕對值A(chǔ)bs(-4.83)=4.83Abs(-25/5)=5Int(<數(shù)值表達(dá)式>)向下取整函數(shù)參數(shù)為負(fù)值時返回小于等于參數(shù)值的最大負(fù)數(shù)Int(3.56)=3Int(-3.56)=-4Fix(<數(shù)值表達(dá)式>)取整函數(shù)參數(shù)為負(fù)值時返回大于等于參數(shù)值的最小負(fù)數(shù)Fix(3.56)=3Fix(-3.56)=-3Sqr(<數(shù)值表達(dá)式>)開平方函數(shù)計(jì)算參數(shù)的平方根(參數(shù)不能為負(fù)數(shù))Sqr(9)=3Round(<數(shù)值表達(dá)式1>,<數(shù)值表達(dá)式2>)四舍五入函數(shù)對<數(shù)值表達(dá)式1>的值按<數(shù)值表達(dá)式2>指定小數(shù)位數(shù)進(jìn)行四舍五入注釋:1、<數(shù)值表達(dá)式2>如果缺省則函數(shù)返回整數(shù)值。2、如果<數(shù)值表達(dá)式2>的值是小數(shù),則先對其進(jìn)行四舍五入到整數(shù),再對<數(shù)值表達(dá)式1>進(jìn)行四舍五入運(yùn)算3、函數(shù)能夠接受的小數(shù)位數(shù)最多為14位,如果<數(shù)值表達(dá)式2>的值為負(fù)值,系統(tǒng)將作出錯誤提示。Round(123.456,1)=123.4字符函數(shù)格式名稱與功能示例及結(jié)果InStr(String1,String2)字符串檢索函數(shù)返回String2在String1中最早出現(xiàn)的位置InStr("abcdABCD","bc")=2InStr("abcdABCD","bB")=0Len(<字符表達(dá)式>|<字段名>)字符串長度檢測函數(shù)返回字符串所含字符數(shù)Len("123.456")=7Len("helloaccess")=12Left(<字符表達(dá)式>,<數(shù)字>)字符串左截取函數(shù)從字符串左側(cè)截取幾個字符Left("Hello",2)="He"Left("Hello",8)="Hello"right(<字符表達(dá)式>,<數(shù)字>)字符串右截取函數(shù)從字符串右邊截取幾個字符right("Hello",2)="lo"right("Hello",8)="Hello"Mid(<字符表達(dá)式>,<N1>[,<N2>])字符串截取函數(shù)從字符串第N1位開始截取N2個字符出來.注釋:如果N2省略,則截取到最后一位。Mid("2021雅安加油",2,4)="013雅"Mid("2021雅安加油",5)="雅安加油"日期時間函數(shù)格式名稱與功能示例及結(jié)果Date()系統(tǒng)日期函數(shù)返回當(dāng)前系統(tǒng)日期Time()系統(tǒng)時間函數(shù)返回當(dāng)前系統(tǒng)時間Now()返回當(dāng)前系統(tǒng)日期和時間Year(<日期表達(dá)式>)返回日期表達(dá)式中的年份Year(#2013-4-20#)=2021Year([出生日期]):返回出生日期字段里的年份Month(<日期表達(dá)式>)返回日期表達(dá)式中的月份month(#2013-4-20#)=4month([出生日期]):返回出生日期字段里的月份Day(<日期表達(dá)式>)返回日期表達(dá)式中的日day(#2013-4-20#)=20day([出生日期]):返回出生日期字段里的日統(tǒng)計(jì)函數(shù)Sum、avg、max、min4.運(yùn)算符運(yùn)算符能將各個數(shù)據(jù)元素連接成一個整體,即表達(dá)式。算術(shù)運(yùn)算符運(yùn)算符功能示例及結(jié)果+加法運(yùn)算3+6=9#2013-4-20#+5=#2013-4-25#[成績]+2:將成績字段加2分-減法運(yùn)算2-3=-1#2013-4-20#-5=#2013-4-15##2013-4-20#-#2013-4-5#=15*乘法運(yùn)算4*3=12[成績]*2:將成績字段翻番/除法運(yùn)算35/8=4.375\整除運(yùn)算15\6=2^指數(shù)運(yùn)算2^3=8連接運(yùn)算符運(yùn)算符功能示例及結(jié)果+字符串連接運(yùn)算說明:1.如果兩邊的操作數(shù)都是字符串,則做字符串連接運(yùn)算。2.如果一個是數(shù)字字符串,另一個為數(shù)值型,則系統(tǒng)自動將數(shù)字字符串轉(zhuǎn)化為數(shù)值,然后進(jìn)行算術(shù)加法運(yùn)算。3.如果一個是非數(shù)字字符串,另一個為數(shù)值型,則出錯."你好"+"再見"="你好再見""魯"+[車牌號]:在車牌號字段前加個魯字"123"+56=179"1a"+6:錯誤&運(yùn)算符&兩邊的操作數(shù)可以是字符型、數(shù)值型或日期型。進(jìn)行連接操作前先將數(shù)值型、日期型轉(zhuǎn)換為字符型,然后再做連接運(yùn)算。8&"是個偶數(shù)"="8是個偶數(shù)"關(guān)系運(yùn)算符>、<、>=、<=、=、<>邏輯運(yùn)算符運(yùn)算符功能示例及結(jié)果And邏輯與,并且[性別]="女"andyear([出生日期])>1990表示出生在1990后的女生Or邏輯或,或者[成績]>90or[成績]<=60表示查找成績大于90分或者小于等于60分的not邏輯非,取反Notlike"王*"表示查找不姓王的人特殊運(yùn)算符運(yùn)算符功能示例及結(jié)果Between……and……等同于>=…and<=…In(A,B,C)檢索一個數(shù)據(jù)是否在(A,B,C)集合里。不一定三項(xiàng)In("山東省青島市","山東省濰坊市","山東省煙臺市")表示查找山東省青島市或山東省濰坊市或山東省煙臺市的記錄Is與null或者notnull連用,確定是否為空值在學(xué)分字段下條件行輸入isnull表示查找學(xué)分為空的記錄Ae表達(dá)式大全(中英對照)全局對象Compcomp(name)用另一個名字給合成命名。Footagefootage(name)用另一個名字給腳本標(biāo)志命名。CompthisComp描述合成內(nèi)容的表達(dá)式。例如:thisComp.layer(2)Layer,Light,orCamerathisLayer是對層本身的描述,thisLayer是一個默認(rèn)的對象,對它的應(yīng)用是可選的。例如,用表達(dá)式thisLayer.width或width可獲得同樣的結(jié)果。PropertythisProperty描述屬性的表達(dá)式。例如,如果寫一個旋轉(zhuǎn)屬性的表達(dá)式就能獲取旋轉(zhuǎn)屬性的值。Numbertime描述合成的時間,單位是秒。NumbercolorDepth返回8或16表示的彩色深度位數(shù)值。例如,當(dāng)項(xiàng)目的每通道的彩色深度為16位時colorDepth返回16。NumberposterizeTime(framesPerSecond){framesPerSecond是一個數(shù)}返回或改變幀率。允許用這個表達(dá)式設(shè)置比合成低的幀率。向量數(shù)學(xué)方法Arrayadd(vec1,vec2){vec1和vec2是數(shù)組}兩個向量相加。Arraysub(vec1,vec2){vec1和vec2是數(shù)組}兩個向量相減。Arraymul(vec1,amount){vec1是數(shù)組,amount是數(shù)}向量的每個元素被amount相乘。Arraydiv(vec1,amount){vec1是數(shù)組,amount是數(shù)}向量的每個元素被amount相除。NumberorArrayClamp(value,limit1,limit2)限制value中每個元素的值在limit1到limit2之間。Numberdot(vec1,vec2){vec1和vec2是數(shù)組}返回點(diǎn)積,結(jié)果為兩個向量相乘。Array[2or3]cross(vec1,vec2){vec1和vec2是數(shù)組[2or3]}返回向量的交積。Arraynormalize(vec){vec是數(shù)組}格式化一個向量,如某長度表示為1.0.Numberlength(vec){vec是數(shù)組}返回向量的長度。Numberlength(point1,point2){point1andpoint2是數(shù)組}隨機(jī)數(shù)方法NothingseedRandom(seed,timeless=false){seed是一個數(shù),默認(rèn)timeless為false}取現(xiàn)有的seed增量一個隨機(jī)值,這個隨機(jī)值依賴于層的index(number)和stream(property),但不總是這樣.例如,seedRandom(n,true)通過給第二個參數(shù)賦值true,seedRandom()獲取一個0到1間的隨機(jī)數(shù).Numberrandom()返回0和1間的隨機(jī)數(shù).NumberorArrayrandom(maxValOrArray){maxValOrArray是一個數(shù)或數(shù)組}返回0到maxVal間的數(shù),維度與maxVal相同;或返回與maxArray相同維度的數(shù)組,數(shù)組的每個元素在0到maxArray之間NumberorArrayrandom(minValOrArray,maxValOrArray){minValOrArray和maxValOrArray是一個數(shù)或數(shù)組}返回一個minVal到maxVal間的數(shù),或返回一個與minArray和maxArray有相同維度的數(shù)組,其每個元素的范圍在minArray與maxArray之間.例如,random([100,200],[300,400])返回?cái)?shù)組的第一個值在100到300間,第二個值在200到400間.如果兩個數(shù)組的維度不同,較短的一個后面自動用0補(bǔ)齊.NumbergaussRandom()返回一個0到1之間的隨機(jī)數(shù).結(jié)果為鐘形分布,大約90%的結(jié)果在0到1之間,剩余10%在邊沿.NumberorArraygaussRandom(maxValOrArray){maxValOrArray是一個數(shù)或數(shù)組}當(dāng)用maxVal,它返回一個0到maxVal之間的隨機(jī)數(shù).結(jié)果為鐘形分布,大約90%的結(jié)果在0到maxVal之間,剩余10%在邊緣.當(dāng)用maxArray,它返回一個與maxArray相同維度的數(shù)組,結(jié)果為鐘形分布,大約90%的結(jié)果在0到maxArray之間,剩余10%在邊緣.NumbergaussRandom(minValOrArray,maxValOrArray){minValOrArray和maxValOrArray是一個數(shù)或數(shù)組}當(dāng)用minVal和maxVal,它返回一個minVal到maxVal之間的隨機(jī)數(shù).結(jié)果為鐘形分布,大約90%的結(jié)果在minVal到maxVal之間,剩余10%在邊緣.當(dāng)用minArray和maxArray,它返回一個與minArray和maxArray相同維度的數(shù)組,結(jié)果為鐘形分布,大約90%的結(jié)果在minArray到maxArray之間,剩余10%在邊緣.剩余10%在邊緣.Numbernoise(valOrArray){valOrArray是一個數(shù)或數(shù)組[2or3]}返回一個0到1間的數(shù).噪聲不是事實(shí)上的隨機(jī),但它是在樣本附近相關(guān)的隨機(jī)數(shù).它基于花邊噪聲.例如,add(position,noise(position)*50).插值方法NumberorArraylinear(t,value1,value2){t是一個數(shù),value1和value2是一個數(shù)或數(shù)組}當(dāng)t的范圍從0到1時,返回一個從value1到value2的線性插值。當(dāng)t<=0時返回value1,當(dāng)t>=1時返回value2。.NumberorArraylinear(t,tMin,tMax,value1,value2){t,tMin和tMaxare數(shù),value1和value2是數(shù)或數(shù)組}當(dāng)t<=tmin時返回value1;當(dāng)t>=tMax時,返回value2;當(dāng)tMin<t<tMax時,返回value1和value2的線性聯(lián)合。NumberorArrayease(t,value1,value2){t是一個數(shù),value1和value2是數(shù)或數(shù)組}返回值與linear相似,但在開始和結(jié)束點(diǎn)的速率都為0。這種方法的結(jié)果是動畫非常平滑。NumberorArrayease(t,tMin,tMax,value1,value2){t,tMin,和tMax是數(shù),value1和value2是數(shù)或數(shù)組}返回值與linear相似,但在開始和結(jié)束點(diǎn)的速率都為0。這種方法的結(jié)果是動畫非常平滑。NumberorArrayeaseIn(t,value1,value2){t是一個數(shù),andvalue1andvalue2是數(shù)或數(shù)組}返回值與ease相似,但只在切入點(diǎn)value1的速率為0,靠近value2一邊是線性的。NumberorArrayeaseIn(t,tMin,tMax,value1,value2){t,tMin和tMax是一個數(shù),value1和value2是數(shù)或數(shù)組}返回值與ease相似,但只在切入點(diǎn)tMin的速率為0,靠近tMax一邊是線性的。NumberorArrayeaseOut(t,value1,value2){t是一個數(shù),value1和value2是數(shù)或數(shù)組}.返回值與ease相似,但只在切入點(diǎn)value2的速率為0,靠近value1一邊是線性的。NumberorArrayeaseOut(t,tMin,tMax,value1,value2){t,tMin和tMax是數(shù),value1value2是數(shù)或數(shù)組}返回值與ease相似,但只在切入點(diǎn)tMax的速率為0,靠近tMin一邊是線性的。彩色轉(zhuǎn)換方法Array[4]rgbToHsl(rgbaArray){rgbaArray是數(shù)組[4]}轉(zhuǎn)換RGBA彩色空間到HSLA彩色空間。輸入數(shù)組指定紅、綠、藍(lán)、透明,它們的范圍都在0.0到1.0之間。結(jié)果值是一個指定色調(diào)、飽和度、亮度和透明的數(shù)組,它們的范圍都在0.0到1.0之間。例如,rgbToHsl.effect("ChangeColor")("ColorToChange")。Array[4]hslToRgb(hslaArray){hslaArray是數(shù)組[4]}.轉(zhuǎn)換HSLA彩色空間到RGBA彩色空間。其操作與rgbToHsl相反。其它數(shù)學(xué)方法NumberdegreesToRadians(degrees)轉(zhuǎn)換度到弧度。NumberradiansToDegrees(radians)轉(zhuǎn)換弧度到度。Comp屬性和方法--------------------------------------------------------------------------------Layer,Light,orCameralayer(index){index是一個數(shù)}得到層的序數(shù)(在時間線窗口中的順序).例如,thisComp.layer(3).Layer,Light,orCameralayer("name"){name是一個字串}得到層名。指定的名字與層名匹配,或者在沒有層名時與源名匹配。如果存在重名,AfterEffects使用時間線窗口中的第一個.例如,thisComp.layer("Solid1").Layer,Light,orCameralayer(otherLayer,relIndex){otherLayer一個層對象,relIndex是一個數(shù)}得到otherLayer(層名)上面或下面relIndex(數(shù))的一個層。例如,layer(thisLayer,-2)返回在時間線窗口中比寫這個表達(dá)式的層高兩層的一個層。Numbermarker(markerNum){markerNum是一個數(shù)}得到合成中一個標(biāo)記點(diǎn)的時間。你可以用它減淡標(biāo)記點(diǎn)的透明,實(shí)現(xiàn)淡出。例如,markTime=thisComp.marker(1);linear(time,markTime-.5,markTime,100,0).NumbernumLayers返回合成中層的數(shù)量。CameraactiveCamera從在當(dāng)前幀中著色合成所經(jīng)過的攝象機(jī)獲取值。這不一定是你在合成窗口所看到的。Numberwidth返回合成的寬度,單位為像素(pixels.)Numberheight返回合成的高度,單位為像素(pixels.)Numberduration返回合成的持續(xù)時間值,單位為秒。NumberframeDuration返回畫面的持續(xù)時間.NumbershutterAngle返回合成中快門角度的度數(shù).NumbershutterPhase返回合成中快門相位的度數(shù)Array[4]bgColor返回合成背景的顏色。NumberpixelAspect返回合成中用width/heigh表示的像素(pixel)寬高比。Stringname返回合成的名字。腳本屬性和方法--------------------------------------------------------------------------------Numberwidth返回腳本的寬度,單位為像素。Numberheight返回腳本的高度,單位為像素。Numberduration返回腳本的持續(xù)長度,單位為秒。NumberframeDuration返回畫面的持續(xù)長度,單位為秒。NumberpixelAspect返回腳本的像素比,表示為width/height.Stringname返回腳本的名字。層子對象屬性和方法--------------------------------------------------------------------------------ComporFootagesource返回層的源Comp或源Footage對象。默認(rèn)時間是在這個源中調(diào)節(jié)的時間。例如,source.layer(1).position.Effecteffect(name){name是一個字串}返回Effect對象。AfterEffects在效果控制窗口中用這個名字查找對應(yīng)的效果。這個名字可以是默認(rèn)名,也可以是用戶自定義名。如果這里有一些相同的效果名則選擇效果控制窗口中同名字的最上面的一個效果。Effecteffect(index){index是一個數(shù)}返回Effect對象。AfterEffects在效果控制窗口中用這個序號查找對應(yīng)的效果。起始于1且從頂部開始。Maskmask(name){name是一個字串}返回層Mask對象。這個名字可以是默認(rèn)名,也可以是用戶自定義名。Maskmask(index){index是一個數(shù)}返回層Mask對象。AfterEffects在時間線窗口中用這個序號查找對應(yīng)的遮罩。起始于1且從頂部開始。層的一般屬性和方法Numberwidth返回以像素為單位的層寬度。它與source.width相同。Numberheight返回以像素為單位的層高度。它與source.height相同。Numberindex返回合成中層數(shù).Layer,Light,orCameraparent返回層的父層對象,例如,position[0]+parent.width.BooleanhasParent如果有父層返回true,如果沒有父層返回false.NumberinPoint返回層的入點(diǎn),單位為秒.NumberoutPoint返回層的出點(diǎn),單位為秒.NumberstartTime返回層的開始時間,單位為秒.BooleanhasVideo如果有視頻(video)返回true,如果沒有(video)返回false.BooleanhasAudio如果有音頻(audio)返回true,如果沒有音頻(audio)返回false.Booleanactive如果層的視頻開關(guān)(眼睛)打開返回true,如果層的視頻開關(guān)(眼睛)關(guān)閉返回false.BooleanaudioActive如果層的音頻開關(guān)(喇叭)打開返回true,如果層的音頻開關(guān)(喇叭)關(guān)閉返回false.Layer特征屬性和方法--------------------------------------------------------------------------------Property[2or3]anchorPoint返回層空間內(nèi)層的錨點(diǎn)值.Property[2or3]position如果該層沒有父層,返回本層在世界空間的位置值;如果有父層,返回本層在父層空間的位置值.Property[2or3]scale返回層的縮放值,表示為百分?jǐn)?shù).Propertyrotation返回層的旋轉(zhuǎn)度數(shù),對于3D層,它返回z旋轉(zhuǎn)度數(shù).Property[1]opacity返回層的透明值,表示為百分?jǐn)?shù).Property[2]audioLevels返回層的音量屬性值,單位為分貝.這是一個2維值;第一個值表示左聲道的音量,第二個值表示右聲道的音量.這個值不是源聲音的幅度,而是音量屬性關(guān)鍵幀的值.PropertytimeRemap當(dāng)時間重測圖被激活時,返回重測圖屬性時間值,單位是秒.MarkerNumbermarker.key(index){index是一個數(shù)}返回層的標(biāo)記數(shù)屬性值.可能用到的方法和屬性只有key(),nearestKey和numKeys.MarkerNumbermarker.key("name"){name是一個字串}返回層中與指定名對應(yīng)的標(biāo)記號.這個名字是標(biāo)記名,它在標(biāo)記對話框的注釋區(qū),例如,marker.key("ch1").這個值對于markerkeys是一個字串,不是數(shù)字.例如,m1=marker.key("Start").time;m2=marker.key("End").time;linear(time,m1,m2,0,100);MarkerNumbermarker.nearestKey返回最接近當(dāng)前時間的標(biāo)記.Numbermarker.numKeys返回層中標(biāo)記的總數(shù).Stringname返回層名.Layer3D屬性和方法--------------------------------------------------------------------------------Property[3]orientation對3D層,返回3D方向的度數(shù)。Property[1]rotationX對3D層,返回x旋轉(zhuǎn)值的度數(shù)。Property[1]rotationY對3D層,返回Y旋轉(zhuǎn)值的度數(shù)。Property[1]rotationZ對3D層,返回Z旋轉(zhuǎn)值的度數(shù)。Property[1]lightTransmission對3D層,返回光的傳導(dǎo)屬性值。PropertycastsShadows如果層投射陰影返回1.0。PropertyacceptsShadows如果層接受陰影返回1.0。PropertyacceptsLights如果層接受燈光返回1.0。Propertyambient返回環(huán)境因素的百分?jǐn)?shù)值。Propertydiffuse返回慢射因素的百分?jǐn)?shù)值。Propertyspecular返回鏡面因素的百分?jǐn)?shù)值。Propertyshininess返回發(fā)光因素的百分?jǐn)?shù)值。Propertymetal返回才質(zhì)因素的百分?jǐn)?shù)值。層空間轉(zhuǎn)換方法--------------------------------------------------------------------------------Array[2or3]toComp(point,t=time){point是一個數(shù)組[2or3],t是一個數(shù)}從層空間轉(zhuǎn)換一個點(diǎn)到合成空間,例如,toComp(anchorPoint)。Array[2or3]fromComp(point,t=time){point是一個數(shù)組[2or3],t是一個數(shù)}從合成空間轉(zhuǎn)換一個點(diǎn)到層空間。得到的結(jié)果在3D層可能是一個非0值。例如(2Dlayer),fromComp(thisComp.layer(2).position).Array[2or3]toWorld(point,t=time){point是一個數(shù)組[2or3],t是一個數(shù)}從層空間轉(zhuǎn)換一個點(diǎn)到視點(diǎn)獨(dú)立的世界空間。例如,toWorld.effect("Bulge")("BulgeCenter").Array[2or3]fromWorld(point,t=time){point是一個數(shù)組[2or3],t是一個數(shù)}從世界空間轉(zhuǎn)換一個點(diǎn)到層空間。例如,fromWorld(thisComp.layer(2).position).Array[2or3]toCompVec(vec,t=time){vec是一個數(shù)組[2or3],t是一個數(shù)}從層空間轉(zhuǎn)換一個向量到合成空間。例如,toCompVec([1,0]).Array[2or3]fromCompVec(vec,t=time){vec是一個數(shù)組[2or3],andt是一個數(shù)}從合成空間轉(zhuǎn)換一個向量到層空間例如(2Dlayer),dir=sub(position,thisComp.layer(2).position);fromCompVec(dir).Array[2or3]toWorldVec(vec,t=time){vec是一個數(shù)組[2or3],t是一個數(shù)}從層空間轉(zhuǎn)換一個向量到世界空間。例如,p1=effect("EyeBulge1")("BulgeCenter");p2=effect("EyeBulge2")("BulgeCenter");toWorld(sub(p1,p2)).Array[2or3]fromWorldVec(vec,t=time){vec是一個數(shù)組[2or3],t是一個數(shù)}從世界空間轉(zhuǎn)換一個向量到層空間。例如,fromWorld(thisComp.layer(2).position).Array[2]fromCompToSurface(point,t=time){point是一個數(shù)組[2or3],t是一個數(shù)}在合成空間中從激活的攝象機(jī)觀察到的位置的層表面(Z值為0)定位一個點(diǎn)。這對于設(shè)置效果控制點(diǎn)有用。僅用于3D層。攝象機(jī)屬性和方法--------------------------------------------------------------------------------Property[3]pointOfInterest返回在世界空間中攝象機(jī)興趣的的值。Propertyzoom返回?cái)z象機(jī)的縮放值,單位為像素。PropertydepthOfField如果攝象機(jī)景深打開返回1,否則返回0。PropertyfocusDistance返回?cái)z象機(jī)焦距值,單位為像素。Propertyaperture返回?cái)z象機(jī)光圈值,單位為像素。PropertyblurLevel返回?cái)z象機(jī)的模糊水平的百分?jǐn)?shù)。Booleanactive(a)如果攝象機(jī)的視頻開關(guān)打開,返回true;(b)當(dāng)前時間在攝象機(jī)的出入點(diǎn)之間,(c)且它是時間線窗口中列出的第一個攝象機(jī),若以上條件之一不滿足,返回false。燈光屬性和方法--------------------------------------------------------------------------------Property[3]pointOfInterest在工作區(qū)返回?zé)艄馀d趣點(diǎn)。Propertyintensity返回?zé)艄饬炼鹊陌俜謹(jǐn)?shù)。Property[4]color返回?zé)艄獠噬怠ropertyconeAngle返回?zé)艄夤忮F角度的度數(shù)。PropertyconeFeather返回?zé)艄夤忮F的羽化百分?jǐn)?shù)。PropertyshadowDarkness返回?zé)艄怅幱鞍抵档陌俜謹(jǐn)?shù)。PropertyshadowDiffusion返回?zé)艄怅幱皵U(kuò)散的像素。Note:燈光對象的大部分屬性和方法與層對象相同,除source,effect,mask,width,height,anchorPoint,scale,opacity,audioLevels,timeRemap,和所有的material屬性。效果的屬性和方法--------------------------------------------------------------------------------Booleanactive返回atruevalueiftheeffectisturnedoninboththe如果效果在時間線窗口和效果控制窗口都打開返回true,如果在以上任意一個窗口關(guān)閉,返回false。Propertyparam(name){name是一個字串}返回效果里面的屬性。例如,.effect("Bulge")("BulgeHeight")。效果點(diǎn)控制總是在層空間。Propertyparam(index){index是一個數(shù)}返回效果里面的屬性。例如,.effect("Bulge")(4)返回BulgeHeight屬性。效果點(diǎn)控制總是在層空間。遮罩屬性和方法--------------------------------------------------------------------------------PropertyMaskOpacity返回遮罩透明值的百分?jǐn)?shù)。PropertyMaskFeather返回遮罩羽化的像素值。Booleaninvert如果遮罩是反向的,返回true;否則返回false。PropertyMaskExpansion返回遮罩的像素。Stringname返回遮罩名。Stringname返回效果名。特征屬性和方法--------------------------------------------------------------------------------NumberorArrayvalue返回當(dāng)前時間的屬性值。NumberorArrayvalueAtTime(t){t是一個數(shù)}返回指定時間(單位為秒)的屬性值。NumberorArrayvelocity返回當(dāng)前時間的即時速率。對于空間屬性,例如位置,它返回切向量值。結(jié)果與屬性有相同的維度。NumberorArrayvelocityAtTime(t){t是一個數(shù)}返回指定時間的即時速率。Numberspeed返回1D量,正的速度值,等于在默認(rèn)時間屬性的改變量。這個元素僅用于空間屬性。NumberspeedAtTime(t){t是一個數(shù)}返回在指定時間的空間速度。NumberorArraywiggle(freq,amp,octaves=1,ampMult=.5,t=time){freq,amp,octaves,ampMult,和t是數(shù)}屬性值隨機(jī)擺動(wiggles)。Freq計(jì)算每秒擺動的次數(shù),用于計(jì)算屬性的基本幅度單位,octaves是加到一起的噪聲的倍頻數(shù),ampMult與amp相乘的倍數(shù)。t基于開始時間。例如,position.wiggle(7,30,3).NumberorArraytemporalWiggle(freq,amp,octaves=1,ampMult=.5,t=time){freq,amp,octaves,ampMult,和t是數(shù)}取樣擺動時的屬性值。Freq計(jì)算每秒擺動的次數(shù),用于計(jì)算屬性的基本幅度單位,octaves是加到一起的噪聲的倍頻數(shù),ampMult與amp相乘的倍數(shù)。t基于開始時間。對于這個函數(shù)意味著取樣的屬性必須被激活,因?yàn)檫@個函數(shù)僅在取樣期間改變屬性值,而不是改變了對應(yīng)的屬性值。.例如,scale.temporalWiggle(5,.2).NumberorArraysmooth(width=.2,samples=5,t=time){width,samples,和t是數(shù)}應(yīng)用一個箱形濾波器到指定時間的屬性值,并且隨著時間的變化使結(jié)果變得平滑。Width(秒)是經(jīng)過濾波器平均時間的范圍。Samples等于離散樣本的平均間隔數(shù)。通常,你需要的采樣(samples)數(shù)是奇數(shù)。例如,position.smooth(.1,5).NumberorArrayloopIn(type="cycle",numKeyframe=0)在層中從入點(diǎn)到第一個關(guān)鍵幀之間循環(huán)一個指定時間段的內(nèi)容。被指定為循環(huán)內(nèi)容的基本段,是從層的第一個關(guān)鍵幀向后到層的出點(diǎn)方向的某個關(guān)鍵幀間的內(nèi)容。numKeyframe是指定以第一個關(guān)鍵幀為起點(diǎn)設(shè)定循環(huán)基本內(nèi)容的關(guān)鍵幀數(shù)目(計(jì)數(shù)不包括第一個關(guān)鍵幀)。例如,loopIn("cycle",1)從層的入點(diǎn)開始到第一個關(guān)鍵幀結(jié)束循環(huán)第一個關(guān)鍵幀到第二個關(guān)鍵幀間的內(nèi)容。循環(huán)的次數(shù)由入點(diǎn)到第一個關(guān)鍵幀間的時間和循環(huán)內(nèi)容長度決定。NumberorArrayloopOut(type="cycle",num關(guān)鍵幀=0)在層中從最后一個關(guān)鍵幀到層的出點(diǎn)之間循環(huán)一個指定時間段的內(nèi)容。被指定為循環(huán)內(nèi)容的基本段,是從層的最后關(guān)鍵幀向前到層的入點(diǎn)方向的某個關(guān)鍵幀間的內(nèi)容。numKeyframe是指定以最后一個關(guān)鍵幀為倒數(shù)起點(diǎn)設(shè)定循環(huán)基本內(nèi)容的關(guān)鍵幀數(shù)目(計(jì)數(shù)不包括最后一個關(guān)鍵幀)。例如,loopOut("cycle",1)從層的最后關(guān)鍵幀開始到出點(diǎn)結(jié)束循環(huán)最后一個關(guān)鍵幀到倒數(shù)第二個關(guān)鍵幀間的內(nèi)容。循環(huán)的次數(shù)由最后關(guān)鍵幀到出點(diǎn)間的時間和循環(huán)內(nèi)容長度決定。NumberorArrayloopInDuration(type="cycle",duration=0)在層中從入點(diǎn)到第一個關(guān)鍵幀之間循環(huán)一個指定時間段的內(nèi)容。被指定為循環(huán)內(nèi)容的基本段,是從層的第一個關(guān)鍵幀向后到層的出點(diǎn)方向duration秒的內(nèi)容。duration是指定以第一個關(guān)鍵幀為起點(diǎn)設(shè)定循環(huán)基本內(nèi)容的時間秒數(shù)。例如,loopInDuration("cycle",1)從層的入點(diǎn)開始到第一個關(guān)鍵幀結(jié)束循環(huán)第一個關(guān)鍵幀以后1秒的內(nèi)容。循環(huán)的次數(shù)由入點(diǎn)到第一個關(guān)鍵幀間的時間和循環(huán)內(nèi)容長度決定。NumberorArrayloopOutDuration(type="cycle",duration=0)在層中從最后一個關(guān)鍵幀到層的出點(diǎn)之間循環(huán)一個指定時間段的內(nèi)容。被指定為循環(huán)內(nèi)容的基本段,是從層的最后關(guān)鍵幀向前到層的入點(diǎn)方向duration秒的內(nèi)容。duration是指定以最后一個關(guān)鍵幀為倒數(shù)起點(diǎn)設(shè)定循環(huán)基本內(nèi)容的的時間秒數(shù)。例如,loopOutDuration("cycle",1)從層的最后關(guān)鍵幀開始到出點(diǎn)結(jié)束循環(huán)最后一個關(guān)鍵幀到倒數(shù)倒數(shù)1秒時間的內(nèi)容。循環(huán)的次數(shù)由最后關(guān)鍵幀到出點(diǎn)間的時間和循環(huán)內(nèi)容長度決定。Keykey(index)用數(shù)字返回key對象。例如,key(1)返回第一個關(guān)鍵幀對象。當(dāng)訪問key對象時能獲得Time,Index,和屬性值。例如,下面的表達(dá)式給出了第3個位置關(guān)鍵幀處的位置值:position.key(3).value。下面的表達(dá)式,當(dāng)將它寫到設(shè)置透明屬性動畫的層時,將忽略在透明屬性中設(shè)置的關(guān)鍵幀的值而僅用關(guān)鍵幀定位在什么時間層閃現(xiàn)。d=Math.abs(time-nearestKey(time).time);easeOut(d,0,.1,100,0).Keykey(markerName)用這個名字返回標(biāo)記的key對象。僅用于標(biāo)記屬性。KeynearestKey(time)返回指定時間最近的關(guān)鍵幀對象。NumbernumKeys返回在一個屬性中關(guān)鍵幀的數(shù)目。關(guān)鍵幀屬性和方法--------------------------------------------------------------------------------NumberorArrayvalue返回關(guān)鍵幀的值。Numbertime返回關(guān)鍵幀的時間。Numberindex返回關(guān)鍵幀的序號File菜單新建←New┗NewProject

→新建項(xiàng)目NewFolder

→新建文件夾打開項(xiàng)目←OpenProject打開最近項(xiàng)目←OpenRecentProjects關(guān)閉←Close保存←Save另存為←SaveAs...保存副本←SaveaCopy...恢復(fù)←Revert導(dǎo)入←Import┗File...

→文件MultipleFiles...

→多個文件Placeholder...

→輸入占位符Solid...

→實(shí)色導(dǎo)入最近鏡頭←ImportRecentFootage輸出←Export查找←Find...再次查找←FindNext添加鏡頭到合成←AddFootagetoComp選定腳本建立合成←NewCompFromSelection...整理鏡頭←ConsolidateAllFootage刪除未用鏡頭←RemoveUnusedFootage簡化項(xiàng)目←ReduceProject文件打包←CollectFiles...瀏覽文件夾←WatchFolder...運(yùn)行腳本←RunScript建立代理←CreateProxy┗Still...→靜態(tài)圖片Movie...→影片設(shè)置代理←SetProxy┗File...

→文件None

→無解釋鏡頭←InterpretFootage┗Main...

→常規(guī)Proxy...

→代理RememberInterpretation

→保存解釋ApplyInterpretation

→應(yīng)用解釋替換鏡頭←ReplaceFootage┗File...

→文件Placeholder...→占位符Solid..

→實(shí)色重載鏡頭←ReloadFootage顯示所在文件夾←RevealinExplorer項(xiàng)目設(shè)置←ProjectSettings...打印←Print...退出←ExitEdit菜單撤消←UndoCopy重復(fù)←RedoCopy歷史記錄←History剪切←Cut復(fù)制←Copy粘貼←Paste清楚←Clear副本←Duplicate分層圖層←SplitLayer抽出工作區(qū)域←LiftWorkArea擠壓工作區(qū)域←ExtraceWorkArea選擇全部←SelectAll全部取消←DeselectAll標(biāo)簽←Label清空←Pruge┗All

→全部Undo

→撤消ImageCaches

→圖象緩存Snapshot

→快照VideoMemory

→視頻內(nèi)存編輯原稿←EditOriginal模版←Templates┗RenderSettings...→渲染設(shè)置OutputModule...

→輸出模式預(yù)置←Preferences┗General...

→常規(guī)Previews...

→預(yù)演Display

→顯示Import...

→輸入Output

→輸出Grids&Guides...

→輔助線及網(wǎng)絡(luò)LabelColors...

→標(biāo)簽顏色LabelDefaults...

→標(biāo)簽設(shè)置Cache...

→緩存VideoPreview...

→視頻預(yù)演Animation菜單添加關(guān)鍵幀←AddKeyframe凍結(jié)關(guān)鍵幀←ToggleHoldKeyframe關(guān)鍵幀插值←KeyframeInterpolation...關(guān)鍵幀速率←KeyframeVelcity...輔助關(guān)鍵幀←KeyframeAssistant┗ConvertAudiotoKeyframes

→轉(zhuǎn)換音頻為關(guān)鍵幀ConvertExpressiontoKeyframes→轉(zhuǎn)換表達(dá)式為關(guān)鍵幀EasyEase

→緩和曲線EasyEaseIn

→緩和曲線進(jìn)入EasyEaseOut

→緩和曲線離開ExponentialScale

→指數(shù)縮放RPFCameraImport

→RPF攝象機(jī)導(dǎo)入SequenceLayers...

→圖層排序Time-ReverseKeyframes

→反轉(zhuǎn)關(guān)鍵幀文字動畫←AnimateText┗AnchorPoint

→軸心點(diǎn)Position

→位置Scale

→縮放Skew

→傾斜Rotation

→旋轉(zhuǎn)Opacity

→不透明度AllTransform

→所有變換FillColor

→填充色StrokeColor

→描邊色StrokeWidth

→描邊寬度Tracking

→追蹤LineAnchor

→線形頻譜LineSpacing

→線形間距CharacterOffset

→字符位移CharacterValue

→字符值率添加文字選擇器←AddTextSelector┗Range

→平行Wiggly→抖動移除所有文字動畫←RemoveAllTextAnimators添加表達(dá)式←AddExpression追蹤運(yùn)動←TrackMotion穩(wěn)定運(yùn)動←StabilizeMotion追蹤當(dāng)前屬性←Trackthisproperty顯示關(guān)鍵幀←RevealAnimatingProperties顯示被修改屬性←RevealModifiedPropertiesPHP正則表達(dá)式的快速學(xué)習(xí)方法1、入門簡介簡單的說,正則表達(dá)式是一種可以用于模式匹配和替換的強(qiáng)有力的工具。我們可以在幾乎所有的基于UNIX系統(tǒng)的工具中找到正則表達(dá)式的身影,例如,vi編輯器,Perl或PHP腳本語言,以及awk或sedshell程序等。此外,象JavaScript這種客戶端的腳本語言也提供了對正則表達(dá)式的支持。由此可見,正則表達(dá)式已經(jīng)超出了某種語言或某個系統(tǒng)的局限,成為人們廣為接受的概念和功能。正則表達(dá)式可以讓用戶通過使用一系列的特殊字符構(gòu)建匹配模式,然后把匹配模式與數(shù)據(jù)文件、程序輸入以及WEB頁面的表單輸入等目標(biāo)對象進(jìn)行比較,根據(jù)比較對象中是否包含匹配模式,執(zhí)行相應(yīng)的程序。舉例來說,正則表達(dá)式的一個最為普遍的應(yīng)用就是用于驗(yàn)證用戶在線輸入的郵件地址的格式是否正確。如果通過正則表達(dá)式驗(yàn)證用戶郵件地址的格式正確,用戶所填寫的表單信息將會被正常處理;反之,如果用戶輸入的郵件地址與正則表達(dá)的模式不匹配,將會彈出提示信息,要求用戶重新輸入正確的郵件地址。由此可見正則表達(dá)式在WEB應(yīng)用的邏輯判斷中具有舉足輕重的作用。2、基本語法在對正則表達(dá)式的功能和作用有了初步的了解之后,我們就來具體看一下正則表達(dá)式的語法格式。(1)正則表達(dá)式的形式一般如下:/love/其中位于“/”定界符之間的部分就是將要在目標(biāo)對象中進(jìn)行匹配的模式。用戶只要把希望查找匹配對象的模式內(nèi)容放入“/”定界符之間即可。(2)為了能夠使用戶更加靈活的定制模式內(nèi)容,正則表達(dá)式提供了專門的“元字符”。所謂元字符就是指那些在正則表達(dá)式中具有特殊意義的專用字符,可以用來規(guī)定其前導(dǎo)字符(即位于元字符前面的字符)在目標(biāo)對象中的出現(xiàn)模式。較為常用的元字符包括:“+”,“*”,以及“?”。其中,“+”元字符規(guī)定其前導(dǎo)字符必須在目標(biāo)對象中連續(xù)出現(xiàn)一次或多次,“*”元字符規(guī)定其前導(dǎo)字符必須在目標(biāo)對象中出現(xiàn)零次或連續(xù)多次,而“?”元字符規(guī)定其前導(dǎo)對象必須在目標(biāo)對象中連續(xù)出現(xiàn)零次或一次。下面,就讓我們來看一下正則表達(dá)式元字符的具體應(yīng)用。

/fo+/因?yàn)樯鲜稣齽t表達(dá)式中包含“+”元字符,表示可以與目標(biāo)對象中的“fool”,“fo”,或者“football”等在字母f后面連續(xù)出現(xiàn)一個或多個字母o的字符串相匹配。

/eg*/因?yàn)樯鲜稣齽t表達(dá)式中包含“*”元字符,表示可以與目標(biāo)對象中的“easy”,“ego”,或者“egg”等在字母e后面連續(xù)出現(xiàn)零個或多個字母g的字符串相匹配。

/Wil?/因?yàn)樯鲜稣齽t表達(dá)式中包含“?”元字符,表示可以與目標(biāo)對象中的“Win”,或者“Wilson”,等在字母i后面連續(xù)出現(xiàn)零個或一個字母l的字符串相匹配。除了元字符之外,用戶還可以精確指定模式在匹配對象中出現(xiàn)的頻率。例如,

/jim{2,6}/上述正則表達(dá)式規(guī)定字符m可以在匹配對象中連續(xù)出現(xiàn)2-6次,因此,上述正則表達(dá)式可以同jimmy或jimmmmmy等字符串相匹配。在對如何使用正則表達(dá)式有了初步了解之后,我們來看一下其它幾個重要的元字符的使用方式。\s:用于匹配單個空格符,包括tab鍵和換行符;\S:用于匹配除單個空格符之外的所有字符;\d:用于匹配從0到9的數(shù)字;\w:用于匹配字母,數(shù)字或下劃線字符;\W:用于匹配所有與\w不匹配的字符;.:用于匹配除換行符之外的所有字符。(說明:我們可以把\s和\S以及\w和\W看作互為逆運(yùn)算)下面,我們就通過實(shí)例看一下如何在正則表達(dá)式中使用上述元字符。

/\s+/上述正則表達(dá)式可以用于匹配目標(biāo)對象中的一個或多個空格字符。

/\d000/如果我們手中有一份復(fù)雜的財(cái)務(wù)報(bào)表,那么我們可以通過上述正則表達(dá)式輕而易舉的查找到所有總額達(dá)千元的款項(xiàng)。(3)除了我們以上所介紹的元字符之外,正則表達(dá)式中還具有另外一種較為獨(dú)特的專用字符,即定位符。定位符用于規(guī)定匹配模式在目標(biāo)對象中的出現(xiàn)位置。較為常用的定位符包括:“^”,“$”,“\b”以及“\B”。其中,“^”定位符規(guī)定匹配模式必須出現(xiàn)在目標(biāo)字符串的開頭,“$”定位符規(guī)定匹配模式必須出現(xiàn)在目標(biāo)對象的結(jié)尾,\b定位符規(guī)定匹配模式必須出現(xiàn)在目標(biāo)字符串的開頭或結(jié)尾的兩個邊界之一,而“\B”定位符則規(guī)定匹配對象必須位于目標(biāo)字符串的開頭和結(jié)尾兩個邊界之內(nèi),即匹配對象既不能作為目標(biāo)字符串的開頭,也不能作為目標(biāo)字符串的結(jié)尾。同樣,我們也可以把“^”和“$”以及“\b”和“\B”看作是互為逆運(yùn)算的兩組定位符。舉例來說:

/^hell/因?yàn)樯鲜稣齽t表達(dá)式中包含“^”定位符,所以可以與目標(biāo)對象中以“hell”,“hello”或“hellhound”開頭的字符串相匹配。

/ar$/因?yàn)樯鲜稣齽t表達(dá)式中包含“$”定位符,所以可以與目標(biāo)對象中以“car”,“bar”或“ar”結(jié)尾的字符串相匹配。/\bbom/因?yàn)樯鲜稣齽t表達(dá)式模式以“\b”定位符開頭,所以可以與目標(biāo)對象中以“bomb”,或“bom”開頭的字符串相匹配。

/man\b/因?yàn)樯鲜稣齽t表達(dá)式模式以“\b”定位符結(jié)尾,所以可以與目標(biāo)對象中以“human”,“woman”或“man”結(jié)尾的字符串相匹配。(4)為了能夠方便用戶更加靈活的設(shè)定匹配模式,正則表達(dá)式允許使用者在匹配模式中指定某一個范圍而不局限于具體的字符。例如:

/[A-Z]/上述正則表達(dá)式將會與從A到Z范圍內(nèi)任何一個大寫字母相匹配。

/[a-z]/上述正則表達(dá)式將會與從a到z范圍內(nèi)任何一個小寫字母相匹配。

/[0-9]/上述正則表達(dá)式將會與從0到9范圍內(nèi)任何一個數(shù)字相匹配。

/([a-z][A-Z][0-9])+/上述正則表達(dá)式將會與任何由字母和數(shù)字組成的字符串,如“aB0”等相匹配。這里需要提醒用戶注意的一點(diǎn)就是可以在正則表達(dá)式中使用“()”把字符串組合在一起?!?)”符號包含的內(nèi)容必須同時出現(xiàn)在目標(biāo)對象中。因此,上述正則表達(dá)式將無法與諸如“abc”等的字符串匹配,因?yàn)椤癮bc”中的最后一個字符為字母而非數(shù)字。(5)如果我們希望在正則表達(dá)式中實(shí)現(xiàn)類似編程邏輯中的“或”運(yùn)算,在多個不同的模式中任選一個進(jìn)行匹配的話,可以使用管道符“|”。例如:

/to|too|2/上述正則表達(dá)式將會與目標(biāo)對象中的“to”,“too”,或“2”相匹配。(6)正則表達(dá)式中還有一個較為常用的運(yùn)算符,即否定符“[^]”。與我們前文所介紹的定位符“^”不同,否定符“[^]”規(guī)定目標(biāo)對象中不能存在模式中所規(guī)定的字符串。例如:

/[^A-C]/上述字符串將會與目標(biāo)對象中除A,B,和C之外的任何字符相匹配。一般來說,當(dāng)“^”出現(xiàn)在“[]”內(nèi)時就被視做否定運(yùn)算符;而當(dāng)“^”位于“[]”之外,或沒有“[]”時,則應(yīng)當(dāng)被視做定位符。(7)最后,當(dāng)用戶需要在正則表達(dá)式的模式中加入元字符,并查找其匹配對象時,可以使用轉(zhuǎn)義符“\”。例如:

/Th\*/上述正則表達(dá)式將會與目標(biāo)對象中的“Th*”而非“The”等相匹配。3、使用實(shí)例①PHP中可以使用ereg()函數(shù)進(jìn)行模式匹配操作。ereg()函數(shù)的使用格式如下:以下為引用的內(nèi)容:ereg(pattern,string)其中,pattern代表正則表達(dá)式的模式,而string則是執(zhí)行查找替換操作的目標(biāo)對象。同樣是驗(yàn)證郵件地址,使用PHP編寫的程序代碼如下:<?php

if(ereg(“^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+”,$email)){

echo“Youremailaddressiscorrect!”;}

else{

echo“Pleasetryagain!”;

}

?>②JavaScript1.2中帶有一個功能強(qiáng)大的RegExp()對象,可以用來進(jìn)行正則表達(dá)式的匹配操作。其中的test()方法可以檢驗(yàn)?zāi)繕?biāo)對象中是否包含匹配模式,并相應(yīng)的返回true或false。我們可以使用JavaScript編寫以下腳本,驗(yàn)證用戶輸入的郵件地址的有效性。以下為引用的內(nèi)容:<html>

<head>

<scriptlanguage=\"Javascript1.2\">

<!--starthiding

functionverifyAddress(obj)

{

varemail=obj.email.value;

varpattern=/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+/;

flag=pattern.test(email);

if(flag)

{

alert(“Youremailaddressiscorrect!”);

returntrue;

}

else

{

alert(“Pleasetryagain!”);

returnfalse;

}

}

//stophiding-->

</script>

</head>

<body>

<formonSubmit=\"returnverifyAddress(this);\">

<inputname=\"email\"type=\"text\"/>

<inputtype=\"submit\"/>

</form>

</body>

</html>想必很多人都對正則表達(dá)式都頭疼。今天,我以我的認(rèn)識,加上網(wǎng)上一些文章,希望用常人都可以理解的表達(dá)方式。來和大家分享學(xué)習(xí)經(jīng)驗(yàn)。開篇,還是得說說^和$他們是分別用來匹配字符串的開始和結(jié)束,以下分別舉例說明:“^The”:開頭一定要有”The”字符串;

“ofdespair$”:結(jié)尾一定要有”ofdespair”的字符串;那么,“^abc$”:就是要求以abc開頭和以abc結(jié)尾的字符串,實(shí)際上是只有abc匹配;

“notice”:匹配包含notice的字符串;你可以看見如果你沒有用我們提到的兩個字符(最后一個例子),就是說模式(正則表達(dá)式)可以出現(xiàn)在被檢驗(yàn)字符串的任何地方,你沒有把他鎖定到兩邊。接著,說說‘*’‘+’和‘?’他們用來表示一個字符可以出現(xiàn)的次數(shù)或者順序,他們分別表示:

“zeroormore”相當(dāng)于{0,}

“oneormore”相當(dāng)于{1,}

“zeroorone.”相當(dāng)于{0,1}這里是一些例子:“ab*”:和ab{0,}同義,匹配以a開頭,后面可以接0個或者N個b組成的字符串(”a”,“ab”,“abbb”,等);

“ab+”:和ab{1,}同義,同上條一樣,但最少要有一個b存在(”ab”“abbb”等);

“ab?”:和ab{0,1}同義,可以沒有或者只有一個b;

“a?b+$”:匹配以一個或者0個a再加上一個以上的b結(jié)尾的字符串。要點(diǎn):’*’‘+’和‘?’只管它前面那個字符。你也可以在大括號里面限制字符出現(xiàn)的個數(shù),比如:“ab{2}”:要求a后面一定要跟兩個b(一個也不能少)(”abb”);“ab{2,}”:要求a后面一定要有兩個或者兩個以上b(如”abb”“abbbb”等);“ab{3,5}”:要求a后面可以有3-5個b(”abbb”,“abbbb”,or“abbbbb”)。現(xiàn)在我們把一定幾個字符放到小括號里,比如:“a(bc)*”:匹配a后面跟0個或者一個”bc”;“a(bc){1,5}”:一個到5個“bc”;還有一個字符‘|’,相當(dāng)于OR操作:“hi|hello”:匹配含有”hi”或者“hello”的字符串;“(b|cd)ef”:匹配含有“bef”或者“cdef”的字符串;

“(a|b)*c”:匹配含有這樣多個(包括0個)a或b,后面跟一個c的字符串;一個點(diǎn)(’.’)可以代表所有的單一字符,不包括”\n”如果,要匹配包括”\n”在內(nèi)的所有單個字符,怎么辦?用’[\n.]’這種模式?!癮.[0-9]”:一個a加一個字符再加一個0到9的數(shù)字;

“^.{3}$”:三個任意字符結(jié)尾。中括號括住的內(nèi)容只匹配一個單一的字符“[ab]”:匹配單個的a或者b(和“a│b”一樣);

“[a-d]”:匹配’a’到’d’的單個字符(和”a│b│c│d”還有“[abcd]”效果一樣);一般我們都用[a-zA-Z]來指定字符為一個大小寫英文:“^[a-zA-Z]”:匹配以大小寫字母開頭的字符串;

“[0-9]%”:匹配含有形如x%的字符串;

“,[a-zA-Z0-9]$”:匹配以逗號再加一個數(shù)字或字母結(jié)尾的字符串;你也可以把你不想要得字符列在中括號里,你只需要在總括號里面使用’^’作為開頭“%[^a-zA-Z]%”匹配含有兩個百分號里面有一個非字母的字符串。要點(diǎn):^用在中括號開頭的時候,就表示排除括號里的字符。為了PHP能夠解釋,你必須在這些字符面前后加”,并且將一些字符轉(zhuǎn)義。不要忘記在中括號里面的字符是這條規(guī)路的例外—在中括號里面,所有的特殊字符,包括(”),都將失去他們的特殊性質(zhì)“[*\+?{}.]”匹配含有這些字符的字符串:還有,正如regx的手冊告訴我們:”如果列表里含有’]’,最好把它作為列表里的第一個字符(可能跟在’^’后面)。如果含有’-’,最好把它放在最前面或者最后面,or或者一個范圍的第二個結(jié)束點(diǎn)[a-d-0-9]中間的‘-’將有效??戳松厦娴睦樱銓n,m}應(yīng)該理解了吧。要注意的是,n和m都不能為負(fù)整數(shù),而且n總是小于m。這樣,才能最少匹配n次且最多匹配m次。如”p{1,5}”將匹配“pvpppppp”中的前五個p下面說說以\開頭的\b書上說他是用來匹配一個單詞邊界,就是…比如’ve\b’,可以匹配love里的ve而不匹配very里有ve\B正好和上面的\b相反。例子我就不舉了…..突然想起來….可以到:///article.php/251看看其它用\開頭的語法好,我們來做個應(yīng)用:如何構(gòu)建一個模式來匹配貨幣數(shù)量的輸入。構(gòu)建一個匹配模式去檢查輸入的信息是否為一個表示money的數(shù)字。我們認(rèn)為一個表示money的數(shù)量有四種方式:”10000.00″和“10,000.00″,或者沒有小數(shù)部分,”10000″and“10,000″?,F(xiàn)在讓我們開始構(gòu)建這個匹配模式:^[1-9][0-9]*$這是所變量必須以非0的數(shù)字開頭。但這也意味著單一的”0″也不能通過測試。以下是解決的方法:^(0|[1-9][0-9]*)$“只有0和不以0開頭的數(shù)字與之匹配”,我們也可以允許一個負(fù)號在數(shù)字之前:^(0|-?[1-9][0-9]*)$這就是:0或者一個以0開頭且可能有一個負(fù)號在前面的數(shù)字。好了,現(xiàn)在讓我們別那么嚴(yán)謹(jǐn),允許以0開頭。現(xiàn)在讓我們放棄負(fù)號,因?yàn)槲覀冊诒硎惧X幣的時候并不需要用到。我們現(xiàn)在指定模式用來匹配小數(shù)部分:^[0-9]+(\.[0-9]+)?$這暗示匹配的字符串必須最少以一個阿拉伯?dāng)?shù)字開頭。但是注意,在上面模式中“10.”是不匹配的,只有“10″和“10.2″才可以,你知道為什么嗎?^[0-9]+(\.[0-9]{2})?$我們上面指定小數(shù)點(diǎn)后面必須有兩位小數(shù)。如果你認(rèn)為這樣太苛刻,你可以改成:^[0-9]+(\.[0-9]{1,2})?$這將允許小數(shù)點(diǎn)后面有一到兩個字符。現(xiàn)在我們加上用來增加可讀性的逗號(每隔三位),我們可以這樣表示:^[0-9]{1,3}(,[0-9]{3})*(\.[0-9]{1,2})?$不要忘記’+’可以被’*’替代如果你想允許空白字符串被輸入話,也不要忘記反斜桿’\’在php字符串中可能會出現(xiàn)錯誤(很普遍的錯誤):現(xiàn)在,我們已經(jīng)可以確認(rèn)字符串了,我們現(xiàn)在把所有逗號都去掉str_replace(”,”,“”,$money)然后在把類型看成double然后我們就可以通過他做數(shù)學(xué)計(jì)算了。再來一個:構(gòu)造檢查email的正則表達(dá)式在一個完整的email地址中有三個部分:1.用戶名(在‘@’左邊的一切)

2.’@’

3.服務(wù)器名(就是剩下那部分)用戶名可以含有大小寫字母阿拉伯?dāng)?shù)字,句號(’.’)減號(’-’)and下劃線’_’)。服務(wù)器名字也是符合這個規(guī)則,當(dāng)然下劃線除外?,F(xiàn)在,用戶名的開始和結(jié)束都不能是句點(diǎn),服務(wù)器也是這樣。還有你不能有兩個連續(xù)的句點(diǎn)他們之間至少存在一個字符,好現(xiàn)在我們來看一下怎么為用戶名寫一個匹配模式:^[_a-zA-Z0-9-]+$現(xiàn)在還不能允許句號的存在。我們把它加上:^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*$上面的意思就是說:以至少一個規(guī)范字符(除了.)開頭,后面跟著0個或者多個以點(diǎn)開始的字符串。簡單化一點(diǎn),我們可以用eregi()取代ereg()、eregi()對大小寫不敏感,我們就不需要指定兩個范圍“a-z”和“A-Z”只需要指定一個就可以了:^[_a-z0-9-]+(\.[_a-z0-9-]+)*$后面的服務(wù)器名字也是一樣,但要去掉下劃線:^[a-z0-9-]+(\.[a-z0-9-]+)*$好?,F(xiàn)在只需要用”@”把兩部分連接:^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*$這就是完整的email認(rèn)證匹配模式了,只需要調(diào)用:eregi(”^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*$”,$eamil)就可以得到是否為email了正則表達(dá)式的其他用法提取字符串ereg()anderegi()有一個特性是允許用戶通過正則表達(dá)式去提取字符串的一部分(具體用法你可以閱讀手冊)。比如說,我們想從path/URL提取文件名,下面的代碼就是你需要:ereg(”([^\\/]*)$”,$pathOrUrl,$regs);

echo$regs[1];高級的代換ereg_replace()和eregi_replace()也是非常有用的,假如我們想把所有的間隔負(fù)號都替換成逗號:ereg_replace(”[\n\r\t]+”,“,”,trim($str));最后,我把另一串檢查EMAIL的正則表達(dá)式讓看文章的你來分析一下:“^[-!#$%&\’*+\\./0-9=?A-Z^_`a-z{|}~]+’.’@’.’[-!#$%&\’*+\\/0-9=?A-Z^_`a-z{|}~]+\.’.’[-!#$%&\’*+\\./0-9=?A-Z^_`a-z{|}~]+$”如果能方便的讀懂,那這篇文章的目的就達(dá)到了。PHP常用正則表達(dá)式大全(含中文)

"^\d+$"http://非負(fù)整數(shù)(正整數(shù)

+

0)

"^[0-9]*[1-9][0-9]*$"http://正整數(shù)

"^((-\d+)|(0+))$"http://非正整數(shù)(負(fù)整數(shù)

+

0)

"^-[0-9]*[1-9][0-9]*$"http://負(fù)整數(shù)

"^-?\d+$"http://整數(shù)

"^\d+(\.\d+)?$"http://非負(fù)浮點(diǎn)數(shù)(正浮點(diǎn)數(shù)

+

0)

"^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$"http://正浮點(diǎn)數(shù)

"^((-\d+(\.\d+)?)|(0+(\.0+)?))$"http://非正浮點(diǎn)數(shù)(負(fù)浮點(diǎn)數(shù)

+

0)

"^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$"http://負(fù)浮點(diǎn)數(shù)

"^(-?\d+)(\.\d+)?$"http://浮點(diǎn)數(shù)

"^[A-Za-z]+$"http://由26個英文字母組成的字符串

"^[A-Z]+$"http://由26個英文字母的大寫組成的字符串

"^[a-z]+$"http://由26個英文字母的小寫組成的字符串

"^[A-Za-z0-9]+$"http://由數(shù)字和26個英文字母組成的字符串

"^\w+$"http://由數(shù)字、26個英文字母或者下劃線組成的字符串

"^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$"http://email地址

"^[a-zA-z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$"http://url

/^(d{2}|d{4})-((0([1-9]{1}))|(1[1|2]))-(([0-2]([1-9]{1}))|(3[0|1]))$/

//

年-月-日

/^((0([1-9]{1}))|(1[1|2]))/(([0-2]([1-9]{1}))|(3[0|1]))/(d{2}|d{4})$/

//

月/日/年

"^([w-.]+)@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.)|(([w-]+.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(]?)$"

//Emil

/^((\+?[0-9]{2,4}\-[0-9]{3,4}\

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論