using System.Text.RegularExpressions;
public static void Main()
Console.WriteLine("Hello World");
Console.WriteLine(isValidSolanaAddress("AAALJNEECdNsKpgg5DRpHsdfasdfXBdPPgGJLhngH2N6vNgK"));
Console.WriteLine(isValidEVMAddress("ethereum:0x7CE4F92598C7eCAed583Ca884b8c023A19b22a0e@1"));
Console.WriteLine(isValidEVMAddress("0xfD3684dF381CcB22557F309F2FA22a678f89D44D"));
string illegal = "LONZO BALL-S01 #110_low.jpg";
string regexSearch = new string(Path.GetInvalidFileNameChars()) + new string(Path.GetInvalidPathChars()) + "#" + " ";
Console.WriteLine(regexSearch);
Regex r = new Regex(string.Format("[{0}]", Regex.Escape(regexSearch)));
illegal = r.Replace(illegal, "");
Console.WriteLine(illegal);
public static bool isValidEVMAddress(string walletAddress)
string cleanedAddress = cleanEthereumAddress(walletAddress);
Console.WriteLine(cleanedAddress);
string pattern = @"^0x[a-fA-F0-9]{40}$";
Regex rg = new Regex(pattern);
return rg.IsMatch(cleanedAddress);
public static bool isValidSolanaAddress(string walletAddress)
string pattern = @"[1-9A-HJ-NP-Za-km-z]{32,44}";
Regex rg = new Regex(pattern);
return rg.IsMatch(walletAddress);
public static string cleanEthereumAddress(string walleAddress)
string address = walleAddress.Replace("ethereum:", "");
int idxAtSign = address.IndexOf('@');
address = idxAtSign > 0 ? address.Substring(0, idxAtSign) : address;