删除后缀的正则表达式

woo*_*ody 0 c++ regex qt4

去除文件名后缀的正则表达式是什么?例如,如果我有一个字符串中的文件名,例如“vnb.txt”,那么删除“.txt”的正则表达式是什么?谢谢。

lee*_*ade 5

你真的需要正则表达式来做到这一点吗?为什么不直接查找字符串中的最后一个句点,并将字符串修剪到该点呢?坦率地说,正则表达式有很多开销,我认为在这种情况下您不需要它。

根据 tstenner 的建议,您可以尝试以下操作之一,具体取决于您使用的字符串类型:

std::strrchr

std::string::find_last_of

第一个例子:

char* str = "Directory/file.txt";

size_t index;
char* pStr = strrchr(str,'.');
if(nullptr != pStr)
{
    index = pStr - str;
}
Run Code Online (Sandbox Code Playgroud)

第二个例子:

int index = string("Directory/file.txt").find_last_of('.');
Run Code Online (Sandbox Code Playgroud)

  • 您可能想要添加对 string::find_last_of 的引用。 (2认同)