【发布时间】:2023-04-09 16:05:01
【问题描述】:
我有一个问题 根据此链接http://support.microsoft.com/kb/188997 ( 计算机名称最多可以包含 15 个字母数字字符,不能有空格。该名称在网络上必须是唯一的,并且可以包含以下特殊字符: ! @#$%^&()-_'{}。 ~
不允许使用以下字符: \ * + = | : ; " ? , )
我正在使用 C++ 进行开发
所以我使用了以下代码,但是当我输入不允许的字符时......它匹配!为什么?
regex rgx("[a-zA-Z0-9]*(!|@|#|$|%|^|&|\(|\)|-|_|'|.|~|\\{|\\})*[a-zA-Z0-9]*");
string name;
cin>>name;
if (regex_match(name, rgx))
{
cout << " Matched :) " << endl;
}
else
cout << "Not Matched :(" << endl;
您的帮助将不胜感激:)
【问题讨论】:
-
当心:currently accepted answer 不会更正示例方法中的其他错误:NetBIOS 名称 forbid "
." 和 "-" 是第一个或最后一个字符。
标签: c++ regex validation netbios