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。