我試着去了解我怎麼能寫C++中的正則表達式求值與lambda表達式其可能的C++正則表達式評估與lambdas像紅寶石?
5;4 11;2 7;3
inputx.gsub(/(.*?);(.*?)\n/) { ($1.to_i - $2.to_i).to_s + "\n" }
1 9 4
如何,如果可以使用lambda表達式我能做到這一點
請幫我
我試着去了解我怎麼能寫C++中的正則表達式求值與lambda表達式其可能的C++正則表達式評估與lambdas像紅寶石?
5;4 11;2 7;3
inputx.gsub(/(.*?);(.*?)\n/) { ($1.to_i - $2.to_i).to_s + "\n" }
1 9 4
如何,如果可以使用lambda表達式我能做到這一點
請幫我
小髒兮兮的祕訣就是全部7正則表達式替換函數全部
語言保留一個內部字符串,通過該字符串從頭構建輸出
。
輸出是一個匹配的子串加上匹配的
字符串格式化的形式。
然後將新字符串返回給調用者。
但是,如果您想提供一個回調函數來執行您自己的
需要語言結構的格式?
在所有的正則表達式的土地,很容易通過只是坐在
regex_search循環和建設新的輸出裏面有模擬這個,
根據每場比賽。
那麼,就C++(> = 11)而言,_you不能提供回調
自動做到這一點!
漂亮的傷心呵呵..
(的boost ::正則表達式這已經內置到他們的正則表達式替換功能爲
和選項(回調仿函數)。)
所以,你該怎麼辦?
你必須推出你自己的regex_replace()類,它需要一個
回調函數,它沒有做任何更多的事情,他們所做的一切都如上所述。
幸運的是,有人已經使用C++的所有鈴聲和哨聲 。
regex replace with callback in c++11?
享受!
非常感謝所有 – alberto
這裏是另一個標記爲_Duplicate_。儘管我首先發現了這一點,但我構建了一個前導碼,然後鏈接到代碼。前言包含理解該鏈接中代碼所需的_important_信息,因爲絕對沒有解釋如何或爲何使用它。不幸的是,現在沒有人會獲得這種好處,他們只會被重定向。否則我會將其標記爲dup。你只是失敗了幫助中心的目的! – sln