<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                ## 問題 你正在試著用正則表達式匹配某個文本模式,但是它找到的是模式的最長可能匹配。而你想修改它變成查找最短的可能匹配。 ## 解決方案 這個問題一般出現在需要匹配一對分隔符之間的文本的時候(比如引號包含的字符串)。為了說明清楚,考慮如下的例子: >>> str_pat = re.compile(r'\"(.*)\"') >>> text1 = 'Computer says "no."' >>> str_pat.findall(text1) ['no.'] >>> text2 = 'Computer says "no." Phone says "yes."' >>> str_pat.findall(text2) ['no." Phone says "yes.'] >>> 在這個例子中,模式 `r'\"(.*)\"'` 的意圖是匹配被雙引號包含的文本。但是在正則表達式中*操作符是貪婪的,因此匹配操作會查找最長的可能匹配。于是在第二個例子中搜索 `text2` 的時候返回結果并不是我們想要的。 為了修正這個問題,可以在模式中的*操作符后面加上?修飾符,就像這樣: >>> str_pat = re.compile(r'\"(.*?)\"') >>> str_pat.findall(text2) ['no.', 'yes.'] >>> 這樣就使得匹配變成非貪婪模式,從而得到最短的匹配,也就是我們想要的結果。 ## 討論 這一節展示了在寫包含點(.)字符的正則表達式的時候遇到的一些常見問題。在一個模式字符串中,點(.)匹配除了換行外的任何字符。然而,如果你將點(.)號放在開始與結束符(比如引號)之間的時候,那么匹配操作會查找符合模式的最長可能匹配。這樣通常會導致很多中間的被開始與結束符包含的文本被忽略掉,并最終被包含在匹配結果字符串中返回。通過在*或者+這樣的操作符后面添加一個?可以強制匹配算法改成尋找最短的可能匹配。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看