我一直在尝试匹配排除特定字符的模式。

假设给定的字符是“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) 
} 

仅接受不包含猜测的所有单词在这里不起作用,因为排除是索引绑定(bind)的

请您参考如下方法:

正则表达式 h^[c]^[c]^[c]o 不起作用,因为它查找 h,后跟 >^,后跟 c,依此类推。

要否定字符集,您必须将脱字符号 ^ 放在括号内,请参阅 Negated Character Classes 。在你的情况下,这将是

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

现在它会查找h,后跟任何字符c,后跟另一个字符c,...


评论关闭
IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!