<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>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # 原生字符串標識 比如,你用標準regex庫來寫一個正則表達式,但正則表達式中的反斜杠’\’其實卻是一個“轉義(escape)”操作符(用于特殊字符),這相當令人討厭。考慮如何去寫_“由反斜杠隔開的兩個詞語”_這樣一個模式(\w\\\w): ``` string s = "\\w\\\\\\w"; // 希望它是對的(譯注:不直觀、不美觀,且容易出錯) ``` 請注意,在正則表達式和普通C++字符串中,各自都需要使用連續兩個反斜杠來表示反斜杠本身。然而,假如使用C++11的原生字符串,_**反斜杠本身**_僅需一個反斜杠就可以表示。因而,上述的例子簡化為: ``` string s = R"(\w\\\w)"; // 這次百分百正確 ``` 引發原生字符串標識提議的是這樣一個“驚天地泣鬼神”的例子: ``` "('(?:[^\\\\']|\\\\.)*'|\"(?:[^\\\\\"]|\\\\.)*\")|" // 這五個反斜杠是否正確? // 即使是專家,也很容易被這么多反斜杠搞得暈頭轉向 ``` **R”(…)”**記法相比于”…”會有一點點的冗長,但為了不必使用煩瑣的“轉義(escape)”符號,“多一點”是必要的。 那么,如何將雙引號**‘”‘**本身放到原生字符串里呢?只要它不是正好跟在_**右括弧’)’**_之后,那么非常簡單: ``` R"("quoted string")" // 這個字符串是 “quoted string” ``` 但是,假如我們偏要在原生字符串中表達_**右括弧后跟雙引號 )”** _這樣一個奇葩組合呢?首先,幸運地是,這種情況一般很少碰到;其次,”(…)”分隔法只不過是默認的分隔語法罷了。通過在**“(…)”**的**(…)**前后添加顯式的自定義分隔號(譯注:例如下面例子中的三個星號***),我們還可以創造出任何我們想要的分隔語法。 ``` // 字符串為:"quoted string containing the usual terminator (")" R"***("quoted string containing the usual terminator (")")***" ``` 在右括弧之后的字符序列(即:自定義分隔號)必須與左括弧之前的字符序列相同。通過這種方式,我們幾乎可以處理任意復雜的模式。 參考: * Standard 2.13.4 * [N2053=06-0123] Beman Dawes: [Raw string literals](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n2053.html) . (original proposal) * [N2442=07-0312] Lawrence Crowl and Beman Dawes: [Raw and Unicode String Literals; Unified Proposal (Rev. 2)](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2442.htm) . (final proposal combined with the [User-defined literals](http://www2.research.att.com/%7Ebs/C++0xFAQ.html#UD-literals) proposal). (翻譯:張瀟,dabaitu)
                  <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>

                              哎呀哎呀视频在线观看