日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python模式匹配算法_详解Python 最短匹配模式

發布時間:2024/7/5 python 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python模式匹配算法_详解Python 最短匹配模式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

問題

你正在試著用正則表達式匹配某個文本模式,但是它找到的是模式的最長可能匹配。 而你想修改它變成查找最短的可能匹配。

解決方案

這個問題一般出現在需要匹配一對分隔符之間的文本的時候(比如引號包含的字符串)。 為了說明清楚,考慮如下的例子:

?

在這個例子中,模式 r'\"(.*)\"' 的意圖是匹配被雙引號包含的文本。 但是在正則表達式中*操作符是貪婪的,因此匹配操作會查找最長的可能匹配。 于是在第二個例子中搜索 text2 的時候返回結果并不是我們想要的。

為了修正這個問題,可以在模式中的*操作符后面加上?修飾符,就像這樣:

?

這樣就使得匹配變成非貪婪模式,從而得到最短的匹配,也就是我們想要的結果。

討論

這一節展示了在寫包含點(.)字符的正則表達式的時候遇到的一些常見問題。 在一個模式字符串中,點(.)匹配除了換行外的任何字符。 然而,如果你將點(.)號放在開始與結束符(比如引號)之間的時候,那么匹配操作會查找符合模式的最長可能匹配。 這樣通常會導致很多中間的被開始與結束符包含的文本被忽略掉,并最終被包含在匹配結果字符串中返回。 通過在 * 或者 + 這樣的操作符后面添加一個 ? 可以強制匹配算法改成尋找最短的可能匹配。

以上就是詳解Python 最短匹配模式的詳細內容,更多關于Python 最短匹配模式的資料請關注服務器之家其它相關文章!

原文鏈接:https://python3-cookbook.readthedocs.io/zh_CN/latest/c02/p07_specify_regexp_for_shortest_match.html

總結

以上是生活随笔為你收集整理的python模式匹配算法_详解Python 最短匹配模式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。