2017-09-13 75 views
-1

我一直在試圖匹配排除特定字符的模式。可以說給出的字符是「h ... o」,我想匹配所有不包含某個字符的單詞,比如說'c' 我已經嘗試了很多不同的方法來解決這個問題。 其中一些包括,正則表達式排除文字位置中的字符

"h^[c]^[c]^[c]o" 

"h(!?c)(?!c)(!?c)o" 

但沒有這些作品中,有沒有人知道怎麼了?

這點有點像一個作弊掛人,我返回所有不包含猜測的單詞。

vector<string> getWords(string currentWord, char guess){ 
    for(auto& i: currentWord){ 
     string reg = "" 
     if(i == '_'){ 
      string t = [[regex expression for acception any char except 'guess']] 
      reg += t; 
     }else{ 
      reg += i; 
     } 
    } 

    return getMatchingWords(mapOfWords, reg) 
} 

只接受不包含的猜測,在排除indexbound

+0

蠻力並不能真正幫助這裏:)你怎麼看一個字?你如何定義這些「單詞」的界限?我在問,因爲'.'不是一個字符(從正則表達式來看) –

+0

它來自字典 – AlexVestin

+0

您能否提供說明問題的代碼片段? [MCVE(最小完整可驗證示例)](http://stackoverflow.com/help/mcve)。 –

回答

1

正則表達式h^[c]^[c]^[c]o不工作並不在這裏工作的所有的話,因爲它看起來h,隨後^,然後是c,依此類推。

要取消字符集,您必須將插入符號^置於括號內,請參見Negated Character Classes。在你的情況,這將是

h[^c][^c][^c]o 

現在它看起來h,其次是任何字符c,後跟其他字符c,...