欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

正则表达式的元素符

发布时间:2023/12/20 编程问答 52 豆豆
生活随笔 收集整理的这篇文章主要介绍了 正则表达式的元素符 小编觉得挺不错的,现在分享给大家,帮大家做个参考.
import reprint("----------匹配单个字符与数字----------") r''' . 匹配除换行符以外的任意字符 [0123456789] []是字符集合,表示匹配方括号中所有所包含的任意一个字符 [liuwang] [] 匹配‘l','i','u' 中任意一个字符 [a-z] 匹配任意小写字母 [A-Z] 匹配任意大写字母 [0-9] 匹配任意数字,类似[0123456789] [0-9a-zA-Z] 匹配任意的数字和字母 [0-9a-zA-Z_] 匹配任意的数字、字母和下划线 [^liuwang] 匹配除了l,i,u,w,a,n,g这几个字母意外的所有字符 中括号中了 ^称为脱字符 表示不匹配集合中的字符 [^0-9] 匹配所有的非数字字符 有 ^ 需要带[] \d 匹配数字,效果同[0-9] \D 匹配非数字,效果同[^0-9] \w 匹配数字,字母和下划线,效果同[0-9a-zA-Z_] \W 匹配非数字,字母和下划线,效果同[^0-9a-zA-Z_] \s 匹配任意的空白符(空格,换行,回车,换页,制表)效果同[ \f\n\r\t] \S 匹配任意的非空白符效果同[^ \f\n\r\t]''' # print(re.findall("\D","liuwang is handsome6"))print("----------------锚字符--------------") ''' ^ 行首匹配,和在[]里的^不是一个意思 $ 行尾匹配 \A 匹配字符串开始,它和^的区别是,\A 只匹配整个字符串的开头,即使在re.M模式下也不会匹配它行的行首 \Z 匹配字符串结束,他和$的区别是,\Z 只匹配整个字符串的开头,即使在re.M模式下也不会匹配它行的行尾\b 匹配一个单词的边界,也就是值单词和空格键的位置,可以匹配never 不能匹配nerve \B 匹配非单词的边界,'''# print(re.search("some","liuwang is handesome")) # print(re.findall("^liu","liuwang is handesome\nliuwang",re.M)) # print(re.findall("\Aliu","liuwang is handesome\nliuwang",re.M)) # # # print(re.search(r"er\b","nerve")) # print(re.search(r"er\b","nnnever")) # print(re.search(r"er\B","nnnevre")) # print(re.search("er\B","nerve"))print("----------------匹配多个字符--------------") ''' 说明:下方的x、y、z 均为假设的普通字符,不是正则表达式的元字符 (xyz) 匹配小括号内的xyz (作为一个整体去匹配) x? 匹配0个或者1个x #非贪婪匹配 x* 匹配0个或者多个x #贪婪匹配 (.* 表示匹配0个或者任意多个字符(换行符除外)) x+ 匹配至少一个x #贪婪匹配x{n} 匹配确定的n个x(n是一个非负整数) x{n,} 匹配至少n个x x{n,m} 匹配至少n个最多m个x,注意:n<=m x|y |表示或 匹配x或者y ''' print(re.findall(r"a?", "aaa"))#非贪婪匹配(尽可能少的匹配) print(re.findall(r"a*", "aaabaa"))#贪婪匹配(尽可能多的匹配) print(re.findall(r"a+", "aaabaaaaaa"))#贪婪匹配(尽可能多的匹配) print(re.findall(r"a{3}", "aaabaa")) print(re.findall(r"a{3,}", "aaaaabaaa"))#贪婪匹配(尽可能多的匹配) print(re.findall(r"a{3,6}", "aaaabaaa")) print(re.findall(r"((s|S)unck)", "sunck--SuNck"))#需求,提取sunck...man str = " sunck is a good man ! sunck is a nice man!sunck is a very handesome man" print(re.findall(r"(sunck.*?man$)",str))print("-------------特殊---------------") ''' *? +? ??最小匹配 通常都是尽可能多的模式,可以使用这种解决贪婪匹配(?:x) 类似(xyz)但不表示一个组 ''' #注释/* part1 */ */ part2 */ print(re.findall(r"//*.*/*/",r"/* part1 */ */ part2 */"))

 

总结

以上是生活随笔为你收集整理的正则表达式的元素符的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。