0
有誰知道更好的方式來驗證C++中的字符串格式,而不使用C++ 11正則表達式類。基本上我有在這種類型的格式 TAG1的幾個串:VALUE,TAG2:VALUE,TAG1:VALUE,TAG2:VALUE無正則表達式的字符串格式驗證(C++ 03)
TAG1和TAG2是字符串,值是各種長度
一個例子的整數值字符串將是:「PPS:112,FJ:543,PPS:76432,FJ:753」等等。
我需要一個函數來驗證格式是否正確。
到目前爲止,我正在進行字符驗證。這似乎很乏味。有沒有更好的方式,我根本不知道。再次,我想避免使用C++ 11或任何第三方庫的正則表達式,除非必須。我主要想知道是否有更好的方法來用C++和STL來做到這一點。
這隻驗證字符串的一部分,如TAG:123。我需要驗證整個字符串,如我的原始示例。我的字符串非常長(每個字符串有1000個以上的標籤)但是整個字符串需要使用逗號和空格格式,正如我以前所示。此外,我必須確保只有兩個標籤,並且它們交替出現,如FIZZ:123,BUZZ:653,FIZZ:4236,BUZZ:234。這是非常簡單的正則表達式,但在C + +我很茫然。當然,我可以在循環中使用此函數來驗證每個子字符串,但這看起來非常低效。 – MadOgre 2013-03-16 08:55:24
正則表達式不會更高效。在封面下它基本上做着完全相同的事情 - 它更簡潔。 – Yuushi 2013-03-16 11:52:56
注意:'all_of'是C++ 11的擴展。如果算法頭中沒有這些函數,您將希望從http://en.cppreference.com/w/cpp/algorithm/all_any_none_of獲取一些實現代碼,用於「all_of」和「find_if_not」。 – Jon 2015-05-13 15:31:42