有没有一种方法可以只对斜杠的第一个实例应用fnmatch的FNM_PATHNAME标志
Is there a way to apply FNM_PATHNAME flag of fnmatch only for first instance of slash?
嗨,我正试图想出一种方法,使用特定规则的fnmatch执行通配符屏蔽。
在字符串中找到斜杠"/"的第一个实例时,它必须与模式中的斜杠("/")完全匹配。即通配符('*')将无法匹配。不过,可以使用通配符匹配输入字符串中的后续斜杠。
所需结果的E.g:
字符串a/b/c应使用/进行匹配。即匹配"b"之后的第二个"/",但不匹配"a"之后的第一个斜线。
字符串:a/b/c模式:/ 结果:字符串:a/b/c模式:* 结果:我已经使用fnmatch 尝试了以下代码部分 ->如果我需要将字符串中的每个"/"映射到模式中的"/",则使用FNM_PATHNAME标志的上述代码可以成功工作。但如果我需要把它限制在第一个实例的话,就不是这样了。 ->我可以使用fnmatch继续处理这个问题吗?或者我需要依赖任何其他posix功能吗。请帮忙。int match(char pat[], char str[])
{
int rVal = fnmatch(pat, str, FNM_PATHNAME);
return rVal;
}
不,没有办法直接用fnmatch
来实现这一点,但您可以在第一个/
将模式一分为二,然后在第一个/
同样地拆分所有候选字符串,并分别匹配第一部分和第二部分。
相关文章:
- 为什么它只打印双链接列表的第一个值,而我的程序却崩溃了
- std::find,返回所有找到的值的替代方法,而不仅仅是存在重复的向量的第一个值
- 如何仅读取文本文件中的第一个值
- 在C++中,如何在第一个"system()"结束后执行第二个"system()"?
- C++ - 使用另一个类的构造函数实例化一个对象
- 查找不在标准中的第一个值::设置<int>最小-最大值
- C++:忽略第一个 cin.ignore 之后的输入
- 在C++中打印多个矢量的第一个值
- C++去除前x个元素的有效方法,在不改变向量大小的情况下将第x+1个元素推到第一个
- C++第一个cout将不会打印
- 我们可以在第一个else-if条件结束后使用另一个else-if条件吗
- 即使我正在.cpp文件中实例化一个伪对象,.cpp文件内模板函数的定义也不起作用
- OpenGL:第二个VBO破坏了第一个VBO
- 为什么第一个Dynamic_cast没有投射到基类?
- OpenGL 2D游戏只绘制第二个精灵纹理而不是第一个
- C++ 为什么程序只读取第一个值
- 在我的第一个C++程序中需要一些帮助(简单)
- 为什么我的代码在第一个 if 语句处中断?
- 是否可以从另一个类对象调用一个类函数而不继承第一个类
- 无法使我的第一个Windows OpenGL窗口抬起并运行