[英]Check if string is Alphanumeric
D中是否有標准功能來檢查字符串是否為字母數字? 如果不是,最有效的方法是什么? 我猜有比遍歷字符串和檢查字符是否在范圍內更好的方法嗎?
我不認為它有一個單一的預制函數,但是您可以組成兩個phobos函數(imo一樣好!):
import std.algorithm, std.ascii;
bool good = all!isAlphaNum(your_string);
我認為這會執行不必要的utf解碼,因此不會達到最大的效率,但是由於字符串肯定很短,因此無論如何這都無關緊要。 但是,如果這對你很可能使用.representation
(從std.string IIRC)或foreach(char c; your_string) isAlphaNum(c);
你自己會快一點。
我認為Adam D. Ruppe的解決方案可能是更好的解決方案,但這也可以使用正則表達式來完成。 您可以在此處查看正則表達式的解釋。
import std.regex;
import std.stdio;
void main()
{
// Compile-time regexes are preferred
// auto alnumRegex = regex(`^[A-Za-z][A-Za-z0-9]*$`);
// Backticks represent raw strings (convenient for regexes)
enum alnumRegex = ctRegex!(`^[A-Za-z][A-Za-z0-9]*$`);
auto testString = "abc123";
auto matchResult = match(testString, alnumRegex);
if(matchResult)
{
writefln("Match(es) found: %s", matchResult);
}
else
{
writeln("Match not found");
}
}
當然,這也僅適用於ASCII。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.