C检查字符串是否与模板相似

时间:2017-04-27 10:46:48

标签: c regex string

嗨我有一个看起来像" ab_dc-05:d5ef6:aef_ "的字符串。我想检查另一个字符串是否看起来像这样(开头有0到x的空格,最后有0到x的空格,中间只有字母数字值和":"," - "," _"。我应该使用什么功能呢?顺便说一下,我找到了regex.h库,但我可能不能包含那个,因为我必须在Windows上使用c99。

谢谢

1 个答案:

答案 0 :(得分:2)

以下是我将如何做到这一点,这样的事情应该有效,它可能比使用RE更容易:

bool matchPattern(const char *s)
{
  // Zero or more spaces at the start.
  while(*s == ' ')
    ++s;
  const char * const os = s;
  while(isalnum((unsigned int) *s) || *s == ':' || *s == '-' || *s == '_')
    ++s;
  // If middle part was empty, fail.
  if(s == os)
    return false;
  // Zero or more spaces at the end.
  while(*s == ' ')
    ++s;
  // The string must end here, or we fail.
  return *s == '\0';
}

上述内容尚未经过测试,但至少应该足以作为灵感。