2017-09-13 28 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,...