1、變量git
建立變量有三種方式正則表達式
好的建立變量:數組
變量名用駝峯式命名。ide
設置好變量的做用域,將多個變量沒必要要地全局化可能會致使效率問題以及混淆的可能性。測試
2、參數:3d
參數與變量很是類似——它們動態地存儲數據,它們具備相同的數據類型,而且它們支持相同的方法。不一樣之處在於它們在工做流之間傳遞數據,而且它們有一個額外的屬性——數據從哪一個方向傳遞到哪一個方向。方向能夠是進,出和進/出。orm
3、數據類型對象
Int32 - System.Int32 (signed integers): 10, 299, -100, 0x69 blog
Long - System.Int64 (long integers): 5435435343O, -11332424D排序
Double - System.Double (allows decimals, 15-16 digits precision): 19.1234567891011
DateTime:用於存儲特定的時間座標(mm/dd/yyyy hh:mm:ss)。這種變量提供了一系列特定的處理方法(減去天數,計算今天剩下的時間,等等)。例如,要得到當前時間,能夠將表達式賦值爲DateTime.Now是DateTime類型的變量。
經常使用的操做方法:
獲取今天日期:DateTime.Today,Datetime.Now.Month
獲取星期:DataTime.DayOfWeek.ToString
字符串轉日期類型:DateTime.ParseExact(InputDate, "dd.MM.yyyy", nothing) 將匹配字符中格式爲「dd.MM.yy」的日期字符串轉爲的日期類型,轉後的日期格式爲你本地系統設置的格式
TimeSpan:用於存儲關於持續時間的信息(dd:hh:mm:ss)。您可使用它來度量DateTime類型的兩個變量之間的持續時間。例如,您能夠在一個變量(類型爲DateTime)中存進程開始時的時間,在另外一個變量(類型爲DateTime)中存結束時的時間,並將差別存儲在一個類型爲TimeSpan的變量中。
myTimeSpan = DateTime1.Subtract(DateTime2)//存儲兩個日期之間的差別 天數 小時數 分鐘數 秒數 myTimeSpan.Days//相差天數
string經常使用的數據操做方法
concat
鏈接兩個指定對象的字符串表示形式
表達式:String.Concat (VarName1,VarName2)
Contains
檢查指定的子字符串是否出如今字符串中。返回真或假
表達式:VarName.Contains("text")
Format
將對象的值轉換爲字符串(並將其插入到另外一個文本中)
表達式:String.Format(「{0} is {1}」, VarName1, VarName2)
IndexOf
返回字符串中某個字符第一次出現的從零開始的索引
Expression: VarName1.IndexOf(「a」)
Join
鏈接集合中的元素並將它們顯示爲字符串
Expression: String.Join(「|」, CollVarName1)
Replace
替換字符串中子字符串的全部匹配項
Expression: VarName.Replace (「original」, 「replaced」)
Split
使用指定的分隔符將字符串拆分爲子字符串
Expression: VarName.Split(「|「c)(index)
Substring
使用起始索引和長度從字符串中提取子字符串
Expression: VarName1.Substring(startIndex, length)
首字母大寫:StrConv(VarName1, VbStrConv.ProperCase);
這個類別從新統一全部的對象集合,每一個對象經過其在集合中的索引進行標識。集合主要用於處理和處理複雜數據。一些最多見的集合是:
1.Array - ArrayOf<T> or System.DataType[]:用於存儲相同數據類型的多個值。大小(對象的數量)在建立時定義,是用於存儲多個對象的固定大小的結構;
2.List - System.Collections.Generic.List<T>: 用於存儲多個相同數據類型的值,就像數組同樣。與數組不一樣,它們的大小是動態的,List容許咱們添加、插入和刪除項。;
Listi定義方式:
List能夠存儲大量的元素——名稱、數字、時間座標和許多其餘元素。列表提供了具體的操做方法,如:
添加和刪除項List.Add()
搜索元素
循環遍歷項目(並對每一個項目執行某些操做)
排序的對象List.Sort List.Reverse反轉
提取項並將其轉換爲其餘數據類型。
合併兩個List到一個新List:Enumerable.Concat(List1.AsEnumerable,List2.AsEnumerable).ToList
獲取前3個Item:List.GetRange(0,3) 參數1:起始位置;參數2:獲取個數
3.Dictionary - System.Collections.Generic.Dictionary<TKey, TValue>: 用於以(key, value)對的形式存儲對象,其中二者均可以是單獨的數據類型。
字典(或Dictionary)是(鍵,值)對的集合,其中鍵是惟一的。想一想手機中的地址簿,每一個名字都有相應的數據(電話號碼、電子郵件)。
在實例化變量時,必須選擇鍵和值的數據類型。字典中的數據類型能夠是任何受支持的變量(例如,包括字典)。
定義:
Dictionary<String, List<String>>
Dictionary<String,Dictionary<String,Double>>
最常與字典相關的操做有:
添加和刪除(鍵、值)對 VarName.Add(Key, Value) VarName.Remove(Key)
檢索與鍵關聯的值
VarName.Item(Key) 經過鍵返回字典項
VarName.Count 返回字典項數
VarName.ContainsKey(Key)檢查具備給定鍵的項是否存在於字典中,並返回一個布爾值結果
VarName.TryGetValue(Key, Value) 檢查字典中是否存在具備給定鍵的項,並返回一個布爾值結果,若是找到則返回值
爲現有鍵從新分配新值 VarName(Key) = 新值
獲取字典中全部Value值到List中,可用於遍歷Value值:VarName.Values
練習:給出一個包含年份和名稱的輸入字典,請計算每一個獲勝者的勝利次數,並打印全部獲勝者的名字和相應的勝利次數。
在開發自動化過程時,會出現您不肯定將檢索什麼類型的數據的狀況。爲了找到答案,您須要使用一個足夠普遍的變量運行一些測試,該變量能夠捕獲任何類型的輸入。這就是咱們建議臨時使用GenericValue變量的地方。
使用場景:
將逐列比較同一個Excel文件的兩個版本。列在數據類型方面是不一樣的,惟一相關的是哪些條目發生了變化
請記住,GenericValue變量最可能是一個臨時解決方案。當數據類型應該是什麼變得清晰時,咱們強烈建議您將其更改成特定的類型。
4、正則表達式
Matches:搜索輸入字符串中的全部匹配項並返回全部成功匹配項。
IsMatch:指示指定的正則表達式是否在指定的輸入字符串中找到匹配項。
Replace:將匹配正則表達式模式的字符串替換爲指定的替換字符串。
舉例:
1.從包含多個地址的字符串中檢測全部街道號碼和名稱。
輸出全部匹配項。
address="275 S Wall St., Wilmington, OH, 45177 - Virginia USA, 1223 Pamela St., Leesburg, FL, 34748 - 1022 Lincoln Ave, Duquesne, PA, 15110 - US, 1295 N Opdyke Rd, Auburn Hills, MI, 48326 - 19 Orbit Dr, Enfield, CT, 06082 "
正則表達式 Matachs \b\d{1,8}(-)?[a-z]?\W[a-z|\W|\.]{1,}\W(road|drive|avenue|boulevard|circle|street|lane|way|rd\.|st\.|dr\.|ave\.|blvd\.|cir\.|ln\.|rd|dr|ave|blvd|cir|ln)
2.輸入字符串,判斷:
最小長度:8個字符;以大寫字母開頭;最多20個字符
^([A-Z][\w]{7,20})*$
3.替換指定文本內容
給定字符串:"Hello Mr <first_name> <last_name>, we would like to invite you to our opening event next week on <day_of_week>. Please confirm by the end of current week.「
InputData.Replace("<first_name>",FirstName.Trim)
4.從字符串中提取電子郵件地址(不使用正則表達式)
給定字符串:「Please use the following address to contact me john.doe@localcompany.com, it's the company email"
IndexTextToFind = InputData.IndexOf("@") EmailAddress_Part1 = InputData.Substring(0,IndexTextToFind) EmailAddress_Part1 = EmailAddress_Part1.Substring(EmailAddress_Part1.LastIndexOf(" ")) EmailAddress_Part2 = InputData.Substring(IndexTextToFind +1) TemporaryIndex=EmailAddress_Part2.IndexOf(" ") EmailAddress_Part2=InputData.Substring(IndexTextToFind + 1, TemporaryIndex ) String.Format("The email address is {0}@{1} ", EmailAddress_Part1, EmailAddress_Part2)
使用正則表達式:Uipath有寫好的,能夠直接用,下拉選擇Email
((?>[a-zA-Z\d!#$%&'*+\-\/=?^_`{|}~]+\x20*|"((?=[\x01-\x7f])[^"\\]|\\[\x01-\x7f])*"\x20*)*(?<angle><))?((?!\.)(?>\.?[a-zA-Z\d!#$%&'*+\-\/=?^_`{|}~]+)+|"((?=[\x01-\x7f])[^"\\]|\\[\x01-\x7f])*")@(((?!-)[a-zA-Z\d\-]+(?<!-)\.)+[a-zA-Z]{2,}|\[(((?(?<!\[)\.)(25[0-5]|2[0-4]\d|[01]?\d?\d)){4}|[a-zA-Z\d\-]*[a-zA-Z\d]:((?=[\x01-\x7f])[^\\\[\]]|\\[\x01-\x7f])+)\])(?(angle)>)
DataTAble
最大的行數:行數限制爲16,777,216。