C++11 原生字符串標識

本文根據(jù)眾多互聯(lián)網(wǎng)博客內(nèi)容整理后形成姚炕,引用內(nèi)容的版權(quán)歸原始作者所有,僅限于學習研究使用亚皂,不得用于任何商業(yè)用途俱箱。

原生字符串標識

比如,你用標準regex庫來寫一個正則表達式灭必,但正則表達式中的反斜杠’\’其實卻是一個“轉(zhuǎn)義(escape)”操作符(用于特殊字符)狞谱,這相當令人討厭〗欤考慮如何去寫“由反斜杠隔開的兩個詞語”這樣一個模式(\w\w):

 string s = "\\w\\\\\\w";  // 希望它是對的(譯注:不直觀跟衅、不美觀,且容易出錯)

請注意播歼,在正則表達式和普通C++字符串中伶跷,各自都需要使用連續(xù)兩個反斜杠來表示反斜杠本身。然而秘狞,假如使用C++11的原生字符串叭莫,反斜杠本身僅需一個反斜杠就可以表示。因而烁试,上述的例子簡化為:

string s = R"(\w\\\w)";  // 這次百分百正確

引發(fā)原生字符串標識提議的是這樣一個“驚天地泣鬼神”的例子:

"('(?:[^\\\\']|\\\\.)*'|\"(?:[^\\\\\"]|\\\\.)*\")|"  // 這五個反斜杠是否正確?
      // 即使是專家雇初,也很容易被這么多反斜杠搞得暈頭轉(zhuǎn)向

R”(…)”記法相比于”…”會有一點點的冗長,但為了不必使用煩瑣的“轉(zhuǎn)義(escape)”符號廓潜,“多一點”是必要的抵皱。
那么善榛,如何將雙引號‘”‘本身放到原生字符串里呢?只要它不是正好跟在右括弧’)’之后呻畸,那么非常簡單:

R"("quoted string")"   // 這個字符串是 “quoted string”

但是移盆,假如我們偏要在原生字符串中表達右括弧后跟雙引號 )” 這樣一個奇葩組合呢?首先伤为,幸運地是咒循,這種情況一般很少碰到;其次绞愚,”(…)”分隔法只不過是默認的分隔語法罷了叙甸。通過在“(…)”的(…)前后添加顯式的自定義分隔號(譯注:例如下面例子中的三個星號*),我們還可以創(chuàng)造出任何我們想要的分隔語法位衩。

// 字符串為:"quoted string containing the usual terminator (")"
R"***("quoted string containing the usual terminator (")")***"

在右括弧之后的字符序列(即:自定義分隔號)必須與左括弧之前的字符序列相同裆蒸。通過這種方式,我們幾乎可以處理任意復雜的模式糖驴。

參考資料

原生字符串標識R | C++11 FAQ 中文版
c++原始字符串

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末僚祷,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子贮缕,更是在濱河造成了極大的恐慌辙谜,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,383評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件感昼,死亡現(xiàn)場離奇詭異装哆,居然都是意外死亡,警方通過查閱死者的電腦和手機定嗓,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,522評論 3 385
  • 文/潘曉璐 我一進店門蜕琴,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人蜕乡,你說我怎么就攤上這事奸绷」?洌” “怎么了层玲?”我有些...
    開封第一講書人閱讀 157,852評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長反症。 經(jīng)常有香客問我辛块,道長,這世上最難降的妖魔是什么铅碍? 我笑而不...
    開封第一講書人閱讀 56,621評論 1 284
  • 正文 為了忘掉前任润绵,我火速辦了婚禮,結(jié)果婚禮上胞谈,老公的妹妹穿的比我還像新娘尘盼。我一直安慰自己憨愉,他們只是感情好,可當我...
    茶點故事閱讀 65,741評論 6 386
  • 文/花漫 我一把揭開白布卿捎。 她就那樣靜靜地躺著配紫,像睡著了一般。 火紅的嫁衣襯著肌膚如雪午阵。 梳的紋絲不亂的頭發(fā)上躺孝,一...
    開封第一講書人閱讀 49,929評論 1 290
  • 那天,我揣著相機與錄音底桂,去河邊找鬼植袍。 笑死,一個胖子當著我的面吹牛籽懦,可吹牛的內(nèi)容都是我干的于个。 我是一名探鬼主播,決...
    沈念sama閱讀 39,076評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼暮顺,長吁一口氣:“原來是場噩夢啊……” “哼览濒!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起拖云,我...
    開封第一講書人閱讀 37,803評論 0 268
  • 序言:老撾萬榮一對情侶失蹤贷笛,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后宙项,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體乏苦,經(jīng)...
    沈念sama閱讀 44,265評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,582評論 2 327
  • 正文 我和宋清朗相戀三年尤筐,在試婚紗的時候發(fā)現(xiàn)自己被綠了汇荐。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,716評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡盆繁,死狀恐怖掀淘,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情油昂,我是刑警寧澤革娄,帶...
    沈念sama閱讀 34,395評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站冕碟,受9級特大地震影響拦惋,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜安寺,卻給世界環(huán)境...
    茶點故事閱讀 40,039評論 3 316
  • 文/蒙蒙 一厕妖、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧挑庶,春花似錦言秸、人聲如沸软能。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,798評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽埋嵌。三九已至,卻和暖如春俱恶,著一層夾襖步出監(jiān)牢的瞬間雹嗦,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,027評論 1 266
  • 我被黑心中介騙來泰國打工合是, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留了罪,地道東北人。 一個月前我還...
    沈念sama閱讀 46,488評論 2 361
  • 正文 我出身青樓聪全,卻偏偏與公主長得像泊藕,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子难礼,可洞房花燭夜當晚...
    茶點故事閱讀 43,612評論 2 350

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理娃圆,服務發(fā)現(xiàn),斷路器蛾茉,智...
    卡卡羅2017閱讀 134,637評論 18 139
  • 第5章 引用類型(返回首頁) 本章內(nèi)容 使用對象 創(chuàng)建并操作數(shù)組 理解基本的JavaScript類型 使用基本類型...
    大學一百閱讀 3,219評論 0 4
  • 推薦幾個正則表達式編輯器 Debuggex :https://www.debuggex.com/ PyRegex:...
    木易林1閱讀 11,480評論 9 151
  • 編輯推薦:每個人心中都藏著一個秘密讼呢,影響我們做出不同的選擇。佳評如潮谦炬、眾多暢銷書作家悦屏、權(quán)威媒體驚呼力薦《請你幫我殺...
    止末閱讀 1,041評論 1 3
  • 浪漫如同巴黎的情人們 在這里開出了花朵 有幾分色彩 裝點著躁動不安的夢 熾熱的心 狂熱的舞 跳著自以為是的虔誠 兀...
    程拾一閱讀 405評論 2 2