欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python中如何使用正則表達式的非貪婪模式示例

 更新時間:2017年10月09日 11:37:47   作者:caimouse  
貪婪與非貪婪模式影響的是被量詞修飾的子表達式的匹配行為,下面這篇文章主要給大家介紹了關(guān)于python中如何使用正則表達式的非貪婪模式的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起看看吧。

前言

本文主要給大家介紹了關(guān)于python使用正則表達式的非貪婪模式的相關(guān)內(nèi)容,分享出來供大家參考學(xué)習(xí),下面話不多說了,來一起詳細的介紹吧。

在正則表達式里,什么是正則表達式的貪婪與非貪婪匹配

如:String str="abcaxc";

  Patter p="ab*c";

貪婪匹配:正則表達式一般趨向于最大長度匹配,也就是所謂的貪婪匹配。如上面使用模式p匹配字符串str,結(jié)果就是匹配到:abcaxc(ab*c)。

非貪婪匹配:就是匹配到結(jié)果就好,就少的匹配字符。如上面使用模式p匹配字符串str,結(jié)果就是匹配到:abc(ab*c)。

解決這個問題,可以采用: 

正則引擎默認(rèn)是貪婪的,當(dāng)出現(xiàn)"*"時,它會盡量去匹配盡可能長的字符串。

 一個用于修正以上問題的可能方案是用"*"的惰性代替貪婪性。你可以在"*"后面緊跟一個問號"?"來達到這一點 
這告訴正則引擎,盡可能少的重復(fù)上一個字符。

如下面的例子:

#python 3. 6 
#蔡軍生 
#http://blog.csdn.net/caimouse/article/details/51749579 
# 
from re_test_patterns import test_patterns 
 
test_patterns( 
 'abbaabbba', 
 [('ab*?', 'a followed by zero or more b'), 
  ('ab+?', 'a followed by one or more b'), 
  ('ab??', 'a followed by zero or one b'), 
  ('ab{3}?', 'a followed by three b'), 
  ('ab{2,3}?', 'a followed by two to three b')], 
) 

輸出結(jié)果如下:

'ab*?' (a followed by zero or more b)


 'abbaabbba'
 'a'
 ...'a'
 ....'a'
 ........'a'


'ab+?' (a followed by one or more b)


 'abbaabbba'
 'ab'
 ....'ab'


'ab??' (a followed by zero or one b)


 'abbaabbba'
 'a'
 ...'a'
 ....'a'
 ........'a'


'ab{3}?' (a followed by three b)


 'abbaabbba'
 ....'abbb'


'ab{2,3}?' (a followed by two to three b)


 'abbaabbba'
 'abb'
 ....'abb'

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關(guān)文章

最新評論