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

标签 c++ regex

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

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

关于c++ - 正则表达式从单词中的位置排除字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46197263/

相关文章:

c++ - std::atomic::load 的内存排序行为

c++ - 如何在 C++ 中获取指向 main() 方法的函数指针?

regex - Ansible:在变量周围放置引号,但前提是引号尚不存在

javascript - 在二维数组中查找精确值

javascript - 使正则表达式变得更好

java - 用字符代码而不是正则表达式替换字符串?

c++ - C++中用于实时语音转换器系统的库?

android - 无法构建 cocos2dx 示例 HelloCpp 项目

c++ - 平方根和的比较

php - 只允许字母、数字和一些外文字母?