2013-01-14 19 views
0
  1. 我需要使用std ::正則表達式和驗證在C++ 輸入字符串的輸入串應當是folder-200folder-1folder-01folder-001之間(前綴必須是「文件夾 - 」)結束 如何爲此寫一個正則表達式?經常爲字符串表達式與數

  2. 正則表達式在C++中的用法與在其他語言(如PHP和JavaScript)中使用的正則表達式不同嗎?

  3. 大多數C++開發人員是否使用'Boost regx'或'std :: regex'(請注意一些問題)?

+0

'文件夾 - \ d {3}'如果它正是3位數字,'文件夾 - \ d +'如果它是儘可能多的數字。 – Rapptz

+0

@Rapptz - 那麼我只需要接受'一位數字','兩位數字'和'三位數字' –

+1

'folder- \ d {1,3}'。 – Rapptz

回答

2

喜歡的東西

const std::regex re("folder-\\d{1,3}"); 

例如:

http://liveworkspace.org/code/1EfD0Q $ 12個

您可以在C讀到的std ::正則表達式++標準,或約的boost ::正則表達式中提升文檔。 boost :: regex是穩定的庫,std :: regex是C++ 11標準的新特性。現在,例如gcc 4.7不能處理這個正則表達式,所以,使用boost更好(在LWS的示例中,我使用boost :: regex而不是std :: regex,因爲gcc 4.7中的std :: regex無法正確處理{n,m})。

+0

我將此標記爲答案,請在liveworkspace中正確地更正其他人使用的示例。謝謝。 –

+0

@NayanaAdassuriya LWS上的示例無法更正,因爲此正確的正則表達式不起作用,因爲此語法{n,m}尚未在std中實現。無論如何,編輯升壓而不是標準。 – ForEveR