String 检查字符串是否为字母数字

String 检查字符串是否为字母数字,string,d,alphanumeric,String,D,Alphanumeric,D中是否有标准函数来检查字符串是否为字母数字?如果不是,最有效的方法是什么?我猜有比在字符串中循环并检查字符是否在范围之间更好的方法吗 我不认为它有一个单独的预制函数,但您可以组合两个火卫一函数(这在我看来也很好!): 我认为这会导致不必要的utf解码,因此不会达到最大效率,但这可能与此无关,因为字符串肯定很短。但是如果这对你很重要,也许可以使用.representation(来自std.string iirc)或foreach(char c;你的字符串)isAlphaNum(c)你自己会快一点

D中是否有标准函数来检查字符串是否为字母数字?如果不是,最有效的方法是什么?我猜有比在字符串中循环并检查字符是否在范围之间更好的方法吗

我不认为它有一个单独的预制函数,但您可以组合两个火卫一函数(这在我看来也很好!):


我认为这会导致不必要的utf解码,因此不会达到最大效率,但这可能与此无关,因为字符串肯定很短。但是如果这对你很重要,也许可以使用
.representation
(来自std.string iirc)或
foreach(char c;你的字符串)isAlphaNum(c)你自己会快一点。

我不认为它有一个单独的预制函数,但你可以组合两个火卫一函数(这在我看来也很好!):


我认为这会导致不必要的utf解码,因此不会达到最大效率,但这可能与此无关,因为字符串肯定很短。但是如果这对你很重要,也许可以使用
.representation
(来自std.string iirc)或
foreach(char c;你的字符串)isAlphaNum(c)你自己会快一点。

我认为Adam D.Ruppe的解决方案可能更好,但这也可以使用正则表达式来实现。您可以查看正则表达式的说明

import std.regex;
进口std.stdio;
void main()
{
//编译时正则表达式是首选
//auto-alnumRegex=regex(`^[A-Za-z][A-Za-z0-9]*$`);
//反勾号表示原始字符串(便于正则表达式)
枚举alnumRegex=ctRegex!(`^[A-Za-z][A-Za-z0-9]*$`);
自动测试字符串=“abc123”;
自动匹配结果=匹配(testString,alnumRegex);
如果(匹配结果)
{
writefln(“找到的匹配项:%s”,匹配结果);
}
其他的
{
写入(“未找到匹配项”);
}
}

当然,这也只适用于ASCII。

我认为Adam D.Ruppe的解决方案可能更好,但也可以使用正则表达式来实现。您可以查看正则表达式的说明

import std.regex;
进口std.stdio;
void main()
{
//编译时正则表达式是首选
//auto-alnumRegex=regex(`^[A-Za-z][A-Za-z0-9]*$`);
//反勾号表示原始字符串(便于正则表达式)
枚举alnumRegex=ctRegex!(`^[A-Za-z][A-Za-z0-9]*$`);
自动测试字符串=“abc123”;
自动匹配结果=匹配(testString,alnumRegex);
如果(匹配结果)
{
writefln(“找到的匹配项:%s”,匹配结果);
}
其他的
{
写入(“未找到匹配项”);
}
}
当然,这也只适用于ASCII

import std.algorithm, std.ascii;
bool good = all!isAlphaNum(your_string);