我一直在尝试匹配排除特定字符的模式。
假设给定的字符是“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/