关于c ++:正则表达式从单词中的位置排除字符

Regex excluding characters from positions in words

我一直在尝试匹配一个不包括某个字符的模式。

假设给定的字符是"h…o",我想匹配所有不包括某个字符的单词,假设是"c"我尝试过很多不同的方法来解决这个问题。其中包括:

1
2
3
"h^[c]^[c]^[c]o"

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

但这些都不起作用,有人知道怎么回事吗?

这有点像一个骗子,我把所有不含猜测的词都还给他。

1
2
3
4
5
6
7
8
9
10
11
12
13
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)
}

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


正则表达式h^^^o不起作用,因为它查找h^c等。

要对字符集求反,必须将插入符号^放在括号内,请参见求反字符类。在你的情况下,这是

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

现在,它查找h,后面跟任何不是c的字符,后面跟另一个不是c的字符,…