簡體   English   中英

C ++ 11中的正則表達式,帶有選項R

[英]Regex in C++ 11 with option R

我在使用Regex的C ++中有以下語句:

if (regex_match(argv[i], regex(R"((.*)\.o)")))

現在我的問題是regex(R"((.*)\\.o)")"是什么?我知道外部regex_match函數會檢查argv[i]是否等於第二個由句號分隔的語句。逗號,如果相等則為true,否則為false。

regex(XXXX)創建一個新的std::regex對象,並根據XXXX是什么來調用適當的構造函數 在這種情況下,這是該列表中的第二個。

因為...

R"(...)"是一個原始字符串文字 ,它使您可以在正則表達式中使用反斜杠之類的內容,而不必像在普通字符串文字中那樣將其轉義。

如果您不知道正則表達式本身匹配什么,甚至什至不知道什么是正則表達式……這是一個更大的話題,並且您可以從中找到很多教程。

(使用std::regex_search()\\.o$的RE是更好的寫方法,IMO,或者根本不使用RE的方法。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM