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

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

基础系列:(这边重点说说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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/488416.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

add php support,wordpress函数add_post_type_support()用法示例

add_post_type_support( string $post_type, string|array $feature )Register support of certain features for a post type.描述All core features are directly associated with a functional area of the edit screen, such as the editor or a meta box. Features includ…

170页PPT入门深度强化学习! 汪荣贵 图灵人工智能 昨天

转自&#xff1a;中国图象图形学报什么是强化学习&#xff1f;和其他学习方法相比&#xff0c;有何不同与特色&#xff1f;深度学习如何与强化学习结合&#xff1f;并各取所长&#xff1f;深度强化学习会成为未来引领智能计算的方法吗&#xff1f;深度强化学习将强化学习和深度…

matlab 文件路径问题

1. fullfile&#xff1a;路径补全 f fullfile(filepart1,...,filepartN) 显然可变参数之间填充的路径分隔符&#xff08;path separator&#xff09;&#xff0c;会根据操作系统而变化&#xff1a; windows&#xff1a;/Linux&#xff1a;\2. fileparts&#xff1a;路径拆分 […

php querystring使用,node.js中的querystring.parse方法使用说明_node.js

方法说明&#xff1a;将字符串转成对象。说白了其实就是把url上带的参数串转成数组对象。(看例子就知道咯)语法&#xff1a;代码如下:querystring.parse(str, [sep], [eq], [options])接收参数&#xff1a;str 欲转换的字符串sep 设置分隔符&#xff0c;默认为 ‘&eq 设置赋…

钟南山院士应邀向欧洲同仁全方位解析新冠肺炎(配中文文字版)

来源&#xff1a;ERS欧洲呼吸学会尊敬的同事们&#xff0c;女士们&#xff0c;先生们&#xff1a;非常荣幸能有机会与您分享我们处理中国境内COVID19感染的相关经验。在这种情况下&#xff0c;我仍然在前线工作&#xff0c;所以准备这个PPT比较匆忙。我只能告诉您一些事实、某些…

powerbi的功能介绍_Power BI性能提升的5大秘密武器

​Power BI无疑已经走了很长一段路&#xff0c;它以其作为自助服务工具的强大根基&#xff0c;易于使用的功能以及在企业领域的持续推动和推动而发展。但是&#xff0c;我们仍然可以发现许多开发和维护Power BI解决方案可以通过应用一些更改而受益匪浅&#xff0c;这些更改将导…

递归推导——猜年龄

一、问题描述 班里转来了一位新同学&#xff0c;他在介绍自己年龄的时候说&#xff1a;“我的年龄的平方是一个三位数&#xff0c;立方是一个四位数&#xff0c;四次方是一个六位数。三次方和四次方正好将0/1/2/3/4/5/6/7/8/9这10个数字全部覆盖。”&#xff0c;那么&#xff0…

matlab画布透明,MATLAB怎么生成带透明对象的矢量图

从很早的版本开始MATLAB就支持对patch、surface等对象设定透明属性&#xff0c;有些示意图也必须使用透明的对象才能充分展示所要表达的含义。对透明对象支持最好的通用图片格式就是.png了&#xff0c;但是png图像并非矢量图形&#xff0c;对于一些需要以矢量图显示的场合并不适…

综述:持续感知系统在边缘计算的应用

来源&#xff1a;《微纳电子与智能制造》随着边缘计算技术的兴起&#xff0c;各种各样的感知系统给人类带来了便捷高效的生活。以日常使用的手机为例&#xff0c;工程师为其置入了各种各样的传感器&#xff0c;并通过运行其上的机器学习算法&#xff0c;部署了很多便捷的功能。…

python如何监控程序运行状态_shell脚本-监控python进程是否在运行及启动python进程...

shell脚本-监控python进程是否在运行&#xff0c;没有则重启jingdong_prices_run.py 并发送邮件告知重启时间,否则不重启不发送邮件定时检测京东商品状态*/5 * * * * sh /data/jingdong-app-spider-py/shell/check-jingdong-goods-run.sh >/store/logs/jingdong-app-spider-…

数据流InputStream转字符串

public static String ScreamToString(InputStream in) throws Exception{//定义一个内存输出流ByteArrayOutputStream out new ByteArrayOutputStream();int len0;byte[] btnew byte[1024];while((lenin.read(bt))!-1){out.write(bt,0,len);}String contentnew String(out.to…

matlab fgoalattain,matlab优化工具箱 | 学步园

1工具箱概述1.1 功能(1)求解无约束条件非线性极小值&#xff1b;(2)求解约束条件下非线性极小值&#xff0c;包括目标逼近问题、极大-极小值问题和半无限极小值问题&#xff1b;(3)求解二次规划和线性规划问题&#xff1b;(4)非线性最小二乘逼近和曲线拟合&#xff1b;(5)非线性…

python如何反转列表_四种Python 列表反转显示方法

原标题&#xff1a;四种Python 列表反转显示方法第一种&#xff0c;使用reversed 函数&#xff0c;reversed返回的结果是一个反转的迭代器&#xff0c;我们需要对其进行 list 转换第二种&#xff0c;使用sorted函数&#xff0c;sorted是排序函数&#xff0c;它是对一个列表进行…

自保护、人机互动柔性织物传感器研究取得进展

来源&#xff1a;中国科学院宁波材料技术与工程研究所可穿戴柔性电子器件&#xff0c;因其柔性/拉伸性、质轻、成本低、便携等特性&#xff0c;被广泛应用于人体运动/人体健康的实时监测、人机/脑机交互以及机器学习等领域。但目前仍存在灵敏度及响应速度较低、检测下限较高、检…

什么是对冲基金

对冲基金采用各种交易手段进行对冲、换位、套头、套期来赚取巨额利润。这些概念已经超出了传统的防止风险、保障收益操作范畴。加之发起和设立对冲基金的法律门槛远低于互惠基金&#xff0c;使之风险进一步加大。为了保护投资者&#xff0c;北美的证券管理机构将其列入高风险投…

谐波分析显著性检验matlab,关于谐波检测方法的MATLAB仿真及综合性能分析.pdf

bq谐波检测方法的MATLAB仿真及综合性能分析谐波检测方法的MATLAB 仿真及综合性能分析王 林&#xff0c;吴军基(南京理工大学动力工程学院&#xff0c;江苏 南京 210094 )摘 要&#xff1a;电力系统谐波一般由非线性设备引起的&#xff0c;对电力系 1 基于瞬时无功理论的谐波检测…

Hibernate第十一篇【配置C3P0数据库连接池、线程Session】

Hibernate连接池 Hibernate自带了连接池&#xff0c;但是呢&#xff0c;该连接池比较简单..而Hibernate又对C3P0这个连接池支持…因此我们来更换Hibernate连接池为C3P0 查看Hibernate自带的连接池 我们可以通过Hibernate.properties文件中查看Hibernate默认配置的连接池 hibern…

npm 切换源_【分享吧】verdaccio搭建npm私有仓库

verdaccio搭建npm私有仓库前言随着前端技术的不断发展&#xff0c;前后端分离已成为主流趋势&#xff0c;这就导致了前端承受的分工压力会越来越大&#xff0c;前端项目也将变得十分庞杂&#xff0c;因此在技术方面会考虑按照业务线进行拆分成几个业务系统。这些系统之间如何共…

疫情中的人工智能和大数据“社会实验”,将如何影响我国经济社会发展

来源&#xff1a;三思派最近&#xff0c;上海市科学学研究所编制了《人工智能、大数据支撑新冠肺炎疫情防控报告&#xff08;1.0版&#xff09;》。报告预测&#xff0c;疫情过后&#xff0c;人们的生活和工作方式都可能向更加智能化方向发展&#xff0c;一个以智能化、无人化、…

php对mysql进行增删改查,php对mysql进行增删改查

php对mysql进行增删改查/*用户名 : MYSQL_USER密 码 : MYSQL_PASS域 名 : MYSQL_HOST端 口 : MYSQL_PORT数据库名 : MYSQL_DB*/define("MYSQL_USER", "root");define("MYSQL_PASS", "");define("MYSQL_HOST", "127.0.0…