2014-02-27 113 views
0

如何檢查字符串是否至少包含一個字符?我想消除只有特殊字符的字符串,所以我決定最簡單的方法是檢查是否至少有一個字符或數字,所以我創建了[a-zA-Z0-9]{1,}[a-zA-Z0-9]+但這些都不起作用。正則表達式爲至少一個字符

boost::regex noSpecialCharacters("[a-zA-Z0-9]+"); 
boost::regex noSpecialCharacters2("[a-zA-Z0-9]{1,}"); 

string tab[SIZE] = {"father", "apple is red"}; 


for (int i = 0; i < SIZE; i++) { 
    if (!boost::regex_match(tab[i], noSpecialCharacters)) { 
    puts("This is it!"); 
    } else { 
    puts("or not"); 
    } 

if (!boost::regex_match(tab[i], noSpecialCharacters2)) { 
    puts("This is it!"); 
} else { 
    puts("or not"); 
    } 
} 

對於「蘋果是紅的」答案是正確的,但對於「父親」它是行不通的。

+0

爲什麼在_both_ if語句中使用'noSpecialCharacters'? – paxdiablo

+0

我的不好。我會改變這一點。但仍然 - 它不起作用 – user1326505

+0

「它不起作用」是解決問題行業的禍根。請說明您的期望和實際得到的結果。 – paxdiablo

回答

0

apple is red不匹配,因爲,按照here(我的粗體):

注意,結果爲真只有表達式匹配的輸入序列的整個

表示空格使其無效。它接着說(再次,我的粗體):

如果你想搜索的表達式某處序列,然後使用regex_search

如果你正在尋找一個有效字符的地方在那裏,你可以只使用regex_match()".*[a-zA-Z0-9].*"regex_search()"[a-zA-Z0-9]"

+0

好的,我該怎麼做才能找到任何一種字符串中至少有一個字符或數字?正如我寫的「蘋果是紅色的」,答案是正確的......但對於「父親」,它不是 – user1326505

+0

@ user1326505,請參閱更新。 – paxdiablo

+0

好的,就是這樣!謝謝。我認爲它返回false它發現了一些這些字符... – user1326505

相關問題