步入正题: 欢迎提出更简单或者效率更高的方法

基础系列:(这边重点说说Python,上次讲过的东西我就一笔带过了)

1.输出+类型转换

Python写法:

2.字符串拼接+ 拼接输出方式

python:

NetCore

这次为了更加形象对比,一句一句翻译成NetCore( 有没有发现规律,user_str[ user_str.Length-1 ]==》 -1 是最后一个,user_str[ user_str.Length-2 ]==》 -2 是最后一个。python在这方面简化了 )

3.2 python 切片语法 : [start_index:end_index:step] (end_index取不到)

# 切片:[start_index:end_index:step] (end_index取不到) # eg:str[1:4] 取str[1]、str[2]、str[3] # eg:str[2:] 取下标为2开始到最后的元素 # eg:str[2:-1] 取下标为2~到倒数第二个元素(end_index取不到) # eg:str[1:6:2] 隔着取~str[1]、str[3]、str[5](案例会详细说) # eg:str[::-1] 逆向输出(案例会详细说,)

来个案例:我注释部分说的很详细了,附录会贴democode的

NetCore,其实你用Python跟其他语言对比反差更大,net真的很强大了。补充(对比看就清楚Python的step为什么是2了,i+=2==》2)

方法系列:

# 查找:find,rfind,index,rindex

Python查找推荐你用 find和rfind

netcore: index0f 就相当于python里面的 find

# 计数:count

python: str.count

netcore:这个真用基础来解决的话,只能自己变形一下: (原字符串长度 - 替换后的长度) / 字符串长度

Python补充说明:像这些方法练习用 ipython3 就好了( sudo apt-get install ipython3),code的话需要一个个的print,比较麻烦(我这边因为需要写文章,所以只能一个个code)

index查找不到会有异常

Python: xxx.replace(str1, str2, 替换次数)

replace可以指定替换几次

NetCore:替换指定次数的功能有点业余,就不说了,你可以自行思考哦~

#连接:join: eg:print("-".join(test_list))

netcore: string.Join(分隔符,数组)

#分割:split(按指定字符分割),splitlines(按行分割),partition(以str分割成三部分,str前,str和str后),rpartition

说下split的切片用法 :print( test_input.split(" ",3) ) #在第三个空格处切片,后面的不切了

继续说说 splitlines(按行分割),和split("\n")的区别我图中给了案例

扩展: split,默认按空字符切割(空格、\t、\n等等,不用担心返回'')

最后说一下 partition 和 r partition返回是元祖类型(后面会说的),方式和find一样,找到第一个匹配的就罢工了【注意一下没找到的情况】

netcore: split里面很多重载方法,可以自己去查看下,eg:Split("\n",StringSplitOptions.RemoveEmptyEntries)

再说一下这个: test_str.Split('a');//返回数组 。 如果要和Python一样 返回列表 ==》test_str.Split('a').ToList ; 【需要引用linq的命名空间哦】

# 头尾判断:startswith(以。。。开头),endswith(以。。。结尾)

netcore:

# 大小写系: lower (字符串转换为小写), upper (字符串转换为大写),title(单词首字母大写), capitalize ( 第一个字符大写,其他变小写 )

netcore:

# 格式系列: lstrip (去除左边空格), rstrip (去除右边空格), strip (去除两边空格)美化输出系列: ljust , rjust , center

netcore: Tirm很强大,除了去空格还可以去除你想去除的任意字符

ljust,rjust,center这些就不说了,python经常在linux终端中输出,所以这几个用的比较多。net里面 string.Format 各种格式化输出,可以参考

# 验证系列: isalpha (是否是纯字母), isalnum (是否是数字|字母), isdigit (是否是纯数字), isspace (是否是纯空格)

一张图搞定,其他的自己去试一试吧,注意哦~ test_str5=" \t \n " # isspace ==>true

netcore: string. IsNullOrEmpty 和 string. IsNullOrWhiteSpace 是系统自带的,其他的你需要自己封装一个扩展类(eg: 简单封装 )【附录有】

附录:

Python3:

# #输出+类型转换 # user_num1=input("输入第一个数:") # user_num2=input("输入第二个数:") # print("两数之和:%d"%(int(user_num1)+int(user_num2))) # # # #字符串拼接 # user_name=input("输入昵称:") # user_pass=input("输入密码:") # user_url="192.168.1.121" # #拼接输出方式一: # print("ftp://"+user_name+":"+user_pass+"@"+user_url) # #拼接输出方式二: # print("ftp://%s:%s@%s"%(user_name,user_pass,user_url)) # # # # 字符串遍历、下标、切片 # user_str="七大姑曰:工作了吗?八大姨问:买房了吗?异性说:结婚了吗?" # #遍历 # for item in user_str: # print(item,end=" ") # #长度:len(user_str) # print(len(user_str)) # #第一个元素:user_str[0] # print(user_str[0]) # #最后一个元素:user_str[-1] # print(user_str[-1]) # print(user_str[len(user_str)-1])#其他编程语言写法 # #倒数第二个元素:user_str[-2] # print(user_str[-2]) # # # 切片:[start_index:end_index:step] (end_index取不到) # eg:str[1:4] 取str[1]、str[2]、str[3] # eg:str[2:] 取下标为2开始到最后的元素 # eg:str[2:-1] 取下标为2~到倒数第二个元素(end_index取不到) # eg:str[1:6:2] 隔着取~str[1]、str[3]、str[5](案例会详细说) # eg:str[::-1] 逆向输出(案例会详细说,) it_str="我爱编程,编程爱它,它是程序,程序是谁?" #eg:取“编程爱它” it_str[5:9] print(it_str[5:9]) print(it_str[5:-11]) #end_index用-xx也一样 print(it_str[-15:-11])#start_index用-xx也可以 #eg:取“编程爱它,它是程序,程序是谁?” it_str[5:] print(it_str[5:])#不写默认取到最后一个 #eg:一个隔一个跳着取("我编,程它它程,序谁") it_str[0::2] print(it_str[0::2])#step=△index(eg:0,1,2,3。这里的step=> 2-0 => 间隔1) #eg:倒序输出 it_str[::-1] # end_index不写默认是取到最后一个,是正取(从左往右)还是逆取(从右往左),就看step是正是负 print(it_str[::-1]) print(it_str[-1::-1])#等价于上一个 # # View Code test_str="ABCDabcdefacddbdf" # # # 查找:find,rfind,index,rindex # # xxx.find(str, start, end) # print(test_str.find("cd"))#从左往右 # print(test_str.rfind("cd"))#从右往左 # print(test_str.find("dnt"))#find和rfind找不到就返回-1 # # index和rindex用法和find一样,只是找不到会报错(以后用find系即可) # # print(test_str.index("dnt")) # # # # 计数:count # # xxx.count(str, start, end) # print(test_str.count("a")) # # # # 替换:replace # # xxx.replace(str1, str2, count_num) # print(test_str) # print(test_str.replace("b","B"))#并没有改变原字符串,只是生成了一个新的字符串 # print(test_str) # # replace可以指定替换几次 # print(test_str.replace("b","B",1))#ABCDaBcdefacddbdf # # # 分割:split(按指定字符分割),splitlines(按行分割),,partition(以str分割成三部分,str前,str和str后),rpartition # test_list=test_str.split("a")#a有两个,按照a分割,那么会分成三段,返回类型是列表(List),并且返回结果中没有a # print(test_list) # test_input="hi my name is dnt" # print(test_input.split(" ")) #返回列表格式(后面会说)['hi', 'my', 'name', 'is', 'dnt'] # print(test_input.split(" ",3))#在第三个空格处切片,后面的不管了 # # 按行分割,返回类型为List # test_line_str="abc\nbca\ncab\n" # print(test_line_str.splitlines)#['abc', 'bca', 'cab'] # print(test_line_str.split("\n"))#看出区别了吧:['abc', 'bca', 'cab', ''] # # 没看出来就再来个案例 # test_line_str2="abc\nbca\ncab\nLLL" # print(test_line_str2.splitlines)#['abc', 'bca', 'cab', 'LLL'] # print(test_line_str2.split("\n"))#再提示一下,最后不是\n就和上面一样效果 # 扩展: # print("hi my name is dnt\t\n m\n\t\n".split)#split,默认按空字符切割(空格、\t、\n等等,不用担心返回'') # #partition,返回是元祖类型(后面会说的),方式和find一样,找到第一个匹配的就罢工了 # print(test_str.partition("cd"))#('ABCDab', 'cd', 'efacddbdf') # print(test_str.rpartition("cd"))#('ABCDabcdefa', 'cd', 'dbdf') # print(test_str.partition("感觉自己萌萌哒"))#没找到:('ABCDabcdefacddbdf', '', '') # # # # 连接:join # # separat.join(xxx) # # 错误用法:xxx.join("-") # print("-".join(test_list)) # # # # 头尾判断:startswith(以。。。开头),endswith(以。。。结尾) # # test_str.startswith(以。。。开头) # start_end_str="http://www.baidu.net" # print(start_end_str.startswith("https://") or start_end_str.startswith("http://")) # print(start_end_str.endswith(".com")) # # # # 大小写系:lower(字符串转换为小写),upper(字符串转换为大写),title(单词首字母大写),capitalize(第一个字符大写,其他变小写) # print(test_str) # print(test_str.upper)#ABCDABCDEFACDDBDF # print(test_str.lower)#abcdabcdefacddbdf # print(test_str.capitalize)#第一个字符大写,其他变小写 # # # # 格式系列:lstrip(去除左边空格),rstrip(去除右边空格),strip(去除两边空格),ljust,rjust,center # strip_str=" I Have a Dream " # print(strip_str.strip+"|")#我加 | 是为了看清后面空格,没有别的用处 # print(strip_str.lstrip+"|") # print(strip_str.rstrip+"|") # #这个就是格式化输出,就不讲了 # print(test_str.ljust(50)) # print(test_str.rjust(50)) # print(test_str.center(50)) # # # 验证系列:isalpha(是否是纯字母),isalnum(是否是数字|字母),isdigit(是否是纯数字),isspace(是否是纯空格) # test_str2="Abcd123" # test_str3="123456" # test_str4=" \t" # test_str5=" \t \n " #isspace ==>true # 一张图搞定,其他的自己去试一试吧 # test_str.isalpha # test_str.isalnum # test_str.isdigit # test_str.isspace View Code

using System; using System.Linq; namespace aibaseConsole { public static class Program { private static void Main { #region BaseCode //var test="123";//定义一个变量 // Console.WriteLine(test);//输出这个变量 // // Console.WriteLine("请输入用户名:"); // var name = Console.ReadLine; // // Console.WriteLine("请输入性别:"); // var gender = Console.ReadLine; // // Console.WriteLine($"Name:{name},Gender:{gender}"); //推荐用法 // Console.WriteLine("Name:{0},Gender:{1}", name, gender); //Old 输出 // 类型转换 // Console.WriteLine("输入第一个数字:"); // var num1 = Console.ReadLine; // Console.WriteLine("输入第二个数字:"); // var num2 = Console.ReadLine; // Console.WriteLine($"num1+num2={Convert.ToInt32(num1)+Convert.ToInt32(num2)}"); // Convert.ToInt64,Convert.ToDouble,Convert.ToString // Console.Write("dnt.dkill.net/now"); // Console.WriteLine("带你走进中医经络"); // // var temp = "xxx"; // var tEmp = "==="; // Console.WriteLine(temp + tEmp); // var num = 9; // Console.WriteLine("num=9,下面结果是对2的除,取余,取商操作:"); // Console.WriteLine(num/2.0); // Console.WriteLine(num%2.0); // Console.WriteLine(num/2); // //指数 // Console.WriteLine(Math.Pow(2,3)); // int age = 24; // // if (age >= 23) // Console.WriteLine("七大姑曰:工作了吗?八大姨问:买房了吗?异性说:结婚了吗?"); // else if (age >= 18) // { // Console.WriteLine(age); // Console.WriteLine("成年了哇"); // } // else // Console.WriteLine("好好学习天天向上"); // int i = 1; // int sum = 0; // while (i <= 100) // { // sum += i; // i++; // } // Console.WriteLine(sum); // var name = "https://pan.baidu.com/s/1weaF2DGsgDzAcniRzNqfyQ#mmd"; // foreach (var i in name) // { // if(i=='#') // break; // Console.Write(i); // } // Console.WriteLine("\n end ..."); #endregion #region String // //# # 字符串遍历、下标、切片 // //# user_str="七大姑曰:工作了吗?八大姨问:买房了吗?异性说:结婚了吗?" // var user_str = "七大姑曰:工作了吗?八大姨问:买房了吗?异性说:结婚了吗?"; // // //# #遍历 // //# for item in user_str: // //# print(item,end=" ") // foreach (var item in user_str) // { // Console.Write(item); // } // // //# #长度:len(user_str) // //# print(len(user_str)) // Console.WriteLine(user_str.Length); // // //# #第一个元素:user_str[0] // //# print(user_str[0]) // Console.WriteLine(user_str[0]); // // //# #最后一个元素:user_str[-1] // //# print(user_str[-1]) // //# print(user_str[len(user_str)-1])#其他编程语言写法 // Console.WriteLine(user_str[user_str.Length-1]); // // // //# #倒数第二个元素:user_str[-2] // //# print(user_str[-2]) // Console.WriteLine(user_str[user_str.Length-2]); // //# # // // // //# 切片:[start_index:end_index:step] (end_index取不到) // //# eg:str[1:4] 取str[1]、str[2]、str[3] // //# eg:str[2:] 取下标为2开始到最后的元素 // //# eg:str[2:-1] 取下标为2~到倒数第二个元素(end_index取不到) // //# eg:str[1:6:2] 隔着取~str[1]、str[3]、str[5](案例会详细说) // //# eg:str[::-1] 逆向输出(案例会详细说,) // // // var it_str = "我爱编程,编程爱它,它是程序,程序是谁?"; // // // //#eg:取“编程爱它” it_str[5:9] // // print(it_str[5:9]) // // print(it_str[5:-11]) #end_index用-xx也一样 // // print(it_str[-15:-11])#start_index用-xx也可以 // // //Substring(int startIndex, int length) // Console.WriteLine(it_str.Substring(5, 4));//第二个参数是长度 // // // // //#eg:取“编程爱它,它是程序,程序是谁?” it_str[5:] // // print(it_str[5:])#不写默认取到最后一个 // Console.WriteLine(it_str.Substring(5));//不写默认取到最后一个 // // //#eg:一个隔一个跳着取("我编,程它它程,序谁") it_str[0::2] // // print(it_str[0::2])#step=△index(eg:0,1,2,3。这里的step=> 2-0 => 间隔1) // // //这个我第一反应是用linq ^_^ // for (int i = 0; i < it_str.Length; i+=2)//对比看就清除Python的step为什么是2了,i+=2==》2 // { // Console.Write(it_str[i]); // } // // Console.WriteLine("\n倒序:"); // //#eg:倒序输出 it_str[::-1] // //# end_index不写默认是取到最后一个,是正取(从左往右)还是逆取(从右往左),就看step是正是负 // // print(it_str[::-1]) // // print(it_str[-1::-1])#等价于上一个 // for (int i = it_str.Length-1; i>=0; i--) // { // Console.Write(it_str[i]); // } // //其实可以用Linq:Console.WriteLine(new string(it_str.ToCharArray.Reverse.ToArray)); #endregion #region StringMethod // var test_str = "ABCDabcdefacddbdf"; // //# # 查找:find,rfind,index,rindex // //# # xxx.find(str, start, end) // //# print(test_str.find("cd"))#从左往右 // Console.WriteLine(test_str.IndexOf('a'));//4 // Console.WriteLine(test_str.IndexOf("cd"));//6 // //# print(test_str.rfind("cd"))#从右往左 // Console.WriteLine(test_str.LastIndexOf("cd"));//11 // //# print(test_str.find("dnt"))#find和rfind找不到就返回-1 // Console.WriteLine(test_str.IndexOf("dnt"));//-1 // //# # index和rindex用法和find一样,只是找不到会报错(以后用find系即可) // //# print(test_str.index("dnt")) // //# # // //# # 计数:count // //# # xxx.count(str, start, end) // // print(test_str.count("d"))#4 // // print(test_str.count("cd"))#2 // // 第一反应,字典、正则、linq,后来想怎么用基础知识解决,于是有了这个~(原字符串长度-替换后的长度)/字符串长度 // System.Console.WriteLine(test_str.Length-test_str.Replace("d","").Length);//统计单个字符就简单了 // System.Console.WriteLine((test_str.Length-test_str.Replace("cd","").Length)/"cd".Length); // System.Console.WriteLine(test_str);//不用担心原字符串改变(python和C#都是有字符串不可变性的) // //# # // // // //# # 替换:replace // //# # xxx.replace(str1, str2, count_num) // //# print(test_str) // //# print(test_str.replace("b","B"))#并没有改变原字符串,只是生成了一个新的字符串 // //# print(test_str) // System.Console.WriteLine(test_str.Replace("b","B")); // //# # replace可以指定替换几次 // //# print(test_str.replace("b","B",1))#ABCDaBcdefacddbdf // // 替换指定次数的功能有点业余,就不说了 // //# # // //# 分割:split(按指定字符分割),splitlines(按行分割),partition(以str分割成三部分,str前,str和str后),rpartition // //# test_list=test_str.split("a")#a有两个,按照a分割,那么会分成三段,返回类型是列表(List),并且返回结果中没有a // //# print(test_list) // var test_array = test_str.Split('a');//返回数组(如果要返回列表==》test_str.Split('a').ToList;) // var test_input = "hi my name is dnt"; // //# print(test_input.split(" ")) #返回列表格式(后面会说)['hi', 'my', 'name', 'is', 'dnt'] // test_input.Split(" "); // //# print(test_input.split(" ",3))#在第三个空格处切片,后面的不管了 // //# # 按行分割,返回类型为List // var test_line_str = "abc\nbca\ncab\n"; // //# print(test_line_str.splitlines)#['abc', 'bca', 'cab'] // test_line_str.Split("\n", StringSplitOptions.RemoveEmptyEntries); // //# print(test_line_str.split("\n"))#看出区别了吧:['abc', 'bca', 'cab', ''] // // // //# # # 没看出来就再来个案例 // //# test_line_str2="abc\nbca\ncab\nLLL" // //# print(test_line_str2.splitlines)#['abc', 'bca', 'cab', 'LLL'] // //# print(test_line_str2.split("\n"))#再提示一下,最后不是\n就和上面一样效果 // // // //# # 扩展: // //# print("hi my name is dnt\t\n m\n\t\n".split)#split,默认按空字符切割(空格、\t、\n等等,不用担心返回'') // // // //# #partition,返回是元祖类型(后面会说的),方式和find一样,找到第一个匹配的就罢工了 // //# print(test_str.partition("cd"))#('ABCDab', 'cd', 'efacddbdf') // //# print(test_str.rpartition("cd"))#('ABCDabcdefa', 'cd', 'dbdf') // //# print(test_str.partition("感觉自己萌萌哒"))#没找到:('ABCDabcdefacddbdf', '', '') // // // //# # // //# 连接:join // //# separat.join(xxx) // //# 错误用法:xxx.join("-") // //# print("-".join(test_list)) // System.Console.WriteLine(string.Join("-",test_array));//test_array是数组 ABCD-bcdef-cddbdf //# # // // //# # 头尾判断:startswith(以。。。开头),endswith(以。。。结尾) // //# # test_str.startswith(以。。。开头) // var start_end_str="http://www.baidu.net"; // //# print(start_end_str.startswith("https://") or start_end_str.startswith("http://")) // System.Console.WriteLine(start_end_str.StartsWith("https://")||start_end_str.StartsWith("http://")); // //# print(start_end_str.endswith(".com")) // System.Console.WriteLine(start_end_str.EndsWith(".com")); // //# # // // // //# # 大小写系:lower(字符串转换为小写),upper(字符串转换为大写),title(单词首字母大写),capitalize(第一个字符大写,其他变小写) // //# print(test_str) // //# print(test_str.upper)#ABCDABCDEFACDDBDF // System.Console.WriteLine(test_str.ToUpper); // //# print(test_str.lower)#abcdabcdefacddbdf // System.Console.WriteLine(test_str.ToLower); // //# print(test_str.capitalize)#第一个字符大写,其他变小写 // // // //# # // // // //# # 格式系列:lstrip(去除左边空格),rstrip(去除右边空格),strip(去除两边空格),ljust,rjust,center // var strip_str=" I Have a Dream "; // //# print(strip_str.strip+"|")#我加 | 是为了看清后面空格,没有别的用处 // System.Console.WriteLine(strip_str.Trim+"|"); // //# print(strip_str.lstrip+"|") // System.Console.WriteLine(strip_str.TrimStart+"|"); // //# print(strip_str.rstrip+"|") // System.Console.WriteLine(strip_str.TrimEnd+"|"); //# #这个就是格式化输出,就不讲了 //# print(test_str.ljust(50)) //# print(test_str.rjust(50)) //# print(test_str.center(50)) //# # // // //# 验证系列:isalpha(是否是纯字母),isalnum(是否是数字|字母),isdigit(是否是纯数字),isspace(是否是纯空格) // // // //# test_str2="Abcd123" // //# test_str3="123456" // var test_str4=" \t"; // var test_str5=" \t \n "; //#isspace ==>true // // string.IsNullOrEmpty 和 string.IsNullOrWhiteSpace 是系统自带的,其他的你需要自己封装一个扩展类 // System.Console.WriteLine(string.IsNullOrEmpty(test_str4)); //false // System.Console.WriteLine(string.IsNullOrWhiteSpace(test_str4));//true // System.Console.WriteLine(string.IsNullOrEmpty(test_str5));//false // System.Console.WriteLine(string.IsNullOrWhiteSpace(test_str5));//true // //# 一张图搞定,其他的自己去试一试吧 // //# test_str.isalpha // //# test_str.isalnum // //# test_str.isdigit // //# test_str.isspace #endregion // Console.Read; } } } View Code

简单封装:

using System; using System.Collections.Generic; using System.Linq; using System.Text.RegularExpressions; public static partial class ValidationHelper { #region 常用验证 #region 集合系列 /// /// 判断集合是否有数据 /// /// /// /// public static bool ExistsData(this IEnumerable list) { bool b = false; if (list != null && list.Count > 0) { b = true; } return b; } #endregion #region Null判断系列 /// /// 判断是否为空或Null /// /// /// public static bool IsNullOrWhiteSpace(this string objStr) { if (string.IsNullOrWhiteSpace(objStr)) { return true; } else { return false; } } /// /// 判断类型是否为可空类型 /// /// /// public static bool IsNullableType(Type theType) { return (theType.IsGenericType && theType.GetGenericTypeDefinition.Equals(typeof(Nullable<>))); } #endregion #region 数字字符串检查 /// /// 是否数字字符串(包括小数) /// /// 输入字符串 /// public static bool IsNumber(this string objStr) { try { return Regex.IsMatch(objStr, @"^\d+(\.\d+)?$"); } catch { return false; } } /// /// 是否是浮点数 /// /// 输入字符串 /// public static bool IsDecimal(this string objStr) { try { return Regex.IsMatch(objStr, @"^(-?\d+)(\.\d+)?$"); } catch { return false; } } #endregion #endregion #region 业务常用 #region 中文检测 /// /// 检测是否有中文字符 /// /// /// public static bool IsZhCN(this string objStr) { try { return Regex.IsMatch(objStr, "[\u4e00-\u9fa5]"); } catch { return false; } } #endregion #region 邮箱验证 /// /// 判断邮箱地址是否正确 /// /// /// public static bool IsEmail(this string objStr) { try { return Regex.IsMatch(objStr, @"^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$"); } catch { return false; } } #endregion #region IP系列验证 /// /// 是否为ip /// /// /// public static bool IsIP(this string objStr) { return Regex.IsMatch(objStr, @"^((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)$"); } /// /// 判断输入的字符串是否是表示一个IP地址 /// /// 被比较的字符串 /// 是IP地址则为True public static bool IsIPv4(this string objStr) { string IPs = objStr.Split('.'); for (int i = 0; i < IPs.Length; i++) { if (!Regex.IsMatch(IPs[i], @"^\d+$")) { return false; } if (Convert.ToUInt16(IPs[i]) > 255) { return false; } } return true; } /// /// 判断输入的字符串是否是合法的IPV6 地址 /// /// /// public static bool IsIPV6(string input) { string temp = input; string strs = temp.Split(':'); if (strs.Length > 8) { return false; } int count = input.GetStrCount("::"); if (count > 1) { return false; } else if (count == 0) { return Regex.IsMatch(input, @"^([\da-f]{1,4}:){7}[\da-f]{1,4}$"); } else { return Regex.IsMatch(input, @"^([\da-f]{1,4}:){0,5}::([\da-f]{1,4}:){0,5}[\da-f]{1,4}$"); } } #endregion #region 网址系列验证 /// /// 验证网址是否正确(http:或者https:)【后期添加 // 的情况】 /// /// 地址 /// public static bool IsWebUrl(this string objStr) { try { return Regex.IsMatch(objStr, @"http://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?|https://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?"); } catch { return false; } } /// /// 判断输入的字符串是否是一个超链接 /// /// /// public static bool IsURL(this string objStr) { string pattern = @"^[a-zA-Z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$"; return Regex.IsMatch(objStr, pattern); } #endregion #region 邮政编码验证 /// /// 验证邮政编码是否正确 /// /// 输入字符串 /// public static bool IsZipCode(this string objStr) { try { return Regex.IsMatch(objStr, @"\d{6}"); } catch { return false; } } #endregion #region 电话+手机验证 /// /// 验证手机号是否正确 /// /// 手机号 /// public static bool IsMobile(this string objStr) { try { return Regex.IsMatch(objStr, @"^13[0-9]{9}|15[012356789][0-9]{8}|18[0123456789][0-9]{8}|147[0-9]{8}$"); } catch { return false; } } /// /// 匹配3位或4位区号的电话号码,其中区号可以用小括号括起来,也可以不用,区号与本地号间可以用连字号或空格间隔,也可以没有间隔 /// /// /// public static bool IsPhone(this string objStr) { try { return Regex.IsMatch(objStr, "^\\(0\\d{2}\\)[- ]?\\d{8}$|^0\\d{2}[- ]?\\d{8}$|^\\(0\\d{3}\\)[- ]?\\d{7}$|^0\\d{3}[- ]?\\d{7}$"); } catch { return false; } } #endregion #region 字母或数字验证 /// /// 是否只是字母或数字 /// /// /// public static bool IsAbcOr123(this string objStr) { try { return Regex.IsMatch(objStr, @"^[0-9a-zA-Z\$]+$"); } catch { return false; } } #endregion #endregion } View Code

说这么多基本上差不多完了,下次列表+字典+元组就一起讲了啊~

欢迎关注我的博客或者公众号:https://home.cnblogs.com/u/Python1234/ Python学习交流

欢迎加入千人交流答疑群:125240963

c井语言python_【一点资讯】C井风靡一时的编程语言和现在最火编程语言Python!谁更强? www.yidianzixun.com...相关推荐

  1. 人工智能2021截稿日期_【一点资讯】2021年第1期“SA核心网”专题 / 本月15日截稿 www.yidianzixun.com...

    <移动通信>"论文专题"栏目简介 自2019年第1期开始 我们特邀业内大咖和专家 担任各期专题客座主编 内容选题.审稿定稿 均由客座主编操刀 成为每期主打 2019.2 ...

  2. 2017校招面经(BAT、搜狗、搜狐、一点资讯、360、华为优招)

    总体流程:简单介绍下自己.各个公司面经.总结.薪资 1.简单介绍 面试岗位:机器学习 | 数据挖掘 | 算法工程师 | 基础研究 比赛经历:天池比赛Top 10,滴滴算法大赛Top 5,京东算法大赛T ...

  3. 新浪自媒体重新开放注册   一点资讯全面布局?

    文/辛东方 [摘要]网络科技时代,各大门户自媒体客户端在大众娱乐的焦点下悄然上线.而在大环境下,百度百家.腾讯科技.天天快报.360自媒体.凤凰自媒体.一点资讯等都在默默地做着后续工作.无疑,无论哪一 ...

  4. 一点资讯app signature

    本文案例是对一点资讯App的 signature 参数分析,通过对qihu360加固的脱壳获取APK源代码,然后通过静态分析获取加密参数位置,最后通过Frida hook生成 signature . ...

  5. 【遇见Doris】Apache Doris在一点资讯自媒体平台的应用

    6月29日,Doris有幸得到中国信通院云大所.大数据技术标准推进委员会的支持,在中国信通院举行了0.11.0新版本预览线下沙龙.各位嘉宾都带来了干货满满的分享.关注Doris官方公众号,后台回复&q ...

  6. 一点资讯战略升级:否定百度收购同时与微博牵手

    上周五,百度洽购一点资讯的传言开始在朋友圈扩散.这类收购传言在互联网圈已是见怪不怪,尽管百度与一点资讯均出面否认,但站在技术角度来看,一点资讯和百度走到一起的可能性还是有的,甚至我认为可能性相当大,这 ...

  7. 2015年8月25号申请入驻一点资讯自媒体平台

    为了更好的为网友提供养生健康知识,于今日申请入驻一点资讯自媒体平台,希望审核工作人员给予通过! 申请人姓名:李新涛 身份证号码:411281197408104056 媒体名称:给你健康一身 媒体介绍: ...

  8. 一点资讯推出“长风计划” 内容分发平台进入拉人大战

    一点资讯发布"长风计划"计划投入1500亿流量扶持等各项福利,吸引创作者为自家平台生产高品质内容. 一点资讯负责人对外表示,长风计划中,一点资讯计划扶持10000位优质内容创作者. ...

  9. 一点资讯推出“长风计划”

    一点资讯发布"长风计划"计划投入1500亿流量扶持等各项福利,吸引创作者为自家平台生产高品质内容. 一点资讯负责人对外表示,长风计划中,一点资讯计划扶持10000位优质内容创作者. ...

最新文章

  1. 2021年2月程序员工资统计,又拖后腿了……
  2. API 网关从入门到放弃
  3. DbVisualizer Personal 7.0 数据库连接工具免安装版本获取,直接解压即可使用!
  4. python 3.x 学习笔记14 (socket_ssh and socket_文件传输)
  5. 3.9 神经网络的梯度下降法-深度学习-Stanford吴恩达教授
  6. freeyellowe—book_剑桥少儿英语yellow book内容
  7. 简单易懂的 pwnable.kr 第三题[bof]Writeupt
  8. 惯性制导精度是多少_美军激光炸弹真实精度性能:炸小卡车,直接从驾驶员车窗钻进去炸...
  9. 解密车载语音识别架构 车载系统能听懂人说话?
  10. 设计模式----简单工厂
  11. 零值初始化字符串常数作为函数模板参数
  12. 微波炉控制器的设计(EDA课程设计)
  13. 醉上清新年中工作总结汇报模板免费下载_PPTX图片设计素材_包图网888pic.com
  14. 期货基础知识 第四节 期货交易流程
  15. 计算机等级考试中电脑死机了,GRE考试电脑死机
  16. 如何设置lazada促销活动--Flash Sale
  17. 按键精灵 python加强版
  18. 熊猫头唱unravel——如何使图片人物表情动起来
  19. [转帖]计较,是贫穷的开始 鸡汤...
  20. Framework学习(五)应用程序启动过程

热门文章

  1. (五)苏世民:我的经验和教训:成功人生的十大信条
  2. 中国石油化工产业发展环境深度分析及投资价值评估报告2022-2028年版
  3. 掌财社:将鳄鱼的特性完全运用到期货战场中
  4. 【毕业设计】老人心率脉搏血压体征监测手表 - stm32 单片机 嵌入式 物联网
  5. 【sqoop2】创建job报错There are issues with entered data, please revise your input
  6. 国内哪个域名注册商比较好?怎样选择域名注册商?
  7. 世上最污技术解读,我竟然秒懂了
  8. 解决No EntityManager with actual transaction available for current thread
  9. 商家或企业做小红书种草推广具体有哪些好处?
  10. Wyn Enterprise 仪表板组件间联动设置及关闭