最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

Python之正则表达式中的贪心模式和非贪心模式的用法和区别

来源:动视网 责编:小采 时间:2020-11-27 14:13:12
文档

Python之正则表达式中的贪心模式和非贪心模式的用法和区别

Python之正则表达式中的贪心模式和非贪心模式的用法和区别:正则表达式并不是Python独有的,而是一套独立的语法,很多编程语言都支持。不同语言中使用的正则表达式语法并不完全一样,但大体都是类似的。本文重点介绍一下贪心模式和非贪心模式的用法和区别。在默认情况下,正则表达式是按照贪心模式去匹配的,也就是去匹
推荐度:
导读Python之正则表达式中的贪心模式和非贪心模式的用法和区别:正则表达式并不是Python独有的,而是一套独立的语法,很多编程语言都支持。不同语言中使用的正则表达式语法并不完全一样,但大体都是类似的。本文重点介绍一下贪心模式和非贪心模式的用法和区别。在默认情况下,正则表达式是按照贪心模式去匹配的,也就是去匹
 正则表达式并不是Python独有的,而是一套独立的语法,很多编程语言都支持。不同语言中使用的正则表达式语法并不完全一样,但大体都是类似的。本文重点介绍一下贪心模式和非贪心模式的用法和区别。在默认情况下,正则表达式是按照贪心模式去匹配的,也就是去匹配能够匹配到的尽可能多的内容。例如:

在上面的代码中,正则表达式中第一个\b表示匹配单词头,后面还有个字母b,表示匹配以字母b开头的单词,后面一个圆点.表示匹配任意字符(包括空格),然后加号+表示前面的任意字符出现一次或多次,最后一个\b表示匹配单词尾。那么问题来了,什么算是单词尾呢?空白字符和标点符号都算单词尾,但是正则表达式默认使用贪心模式,也就是匹配尽可能多的内容,所以上面的代码匹配到的文本中最后一个单词尾。如图:

那如何才能只匹配以字母b开始的单词而不是像上面这样子呢?可以使用非贪心模式。非贪心模式是使用问号“?”完成的,在正则表达式中,如果问号前面是普通字符或子模式,表示问号前面的字符或子模式可以出现也可以不出现。但是如果问号紧跟在+、*和{m,n}这样的内容后面,则表示非贪心模式,也就是匹配尽可能少的内容。以上面的问题为例,改为非贪心模式,例如:

下面的代码进一步演示了贪心模式和非贪心模式的区别:

当然,回到本文最初的问题,如果只是为了匹配以字母b开始的单词,是不用这么麻烦,直接使用\w就好了,因为\w只能匹配字母、数字或下划线,而不能匹配空格。例如:

相关推荐:

文档

Python之正则表达式中的贪心模式和非贪心模式的用法和区别

Python之正则表达式中的贪心模式和非贪心模式的用法和区别:正则表达式并不是Python独有的,而是一套独立的语法,很多编程语言都支持。不同语言中使用的正则表达式语法并不完全一样,但大体都是类似的。本文重点介绍一下贪心模式和非贪心模式的用法和区别。在默认情况下,正则表达式是按照贪心模式去匹配的,也就是去匹
推荐度:
标签: 模式 用法 python
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top