是否有正则表达式检查字符串是否只包含大写字母、小写字母、数字和下划线?
当前回答
这对我很有用。你可以试试:
[\\p{Alnum}_]
其他回答
试试我为字符串做的这些多语言扩展。
isalphannumeric—字符串必须包含至少一个alpha(在Unicode范围内的字母,在charSet中指定)和至少一个数字(在numSet中指定)。同样,字符串应该只包含alpha和数字。
IsAlpha -字符串应该包含至少一个alpha(在指定的语言字符集中),并且只由alpha组成。
IsNumeric -字符串应该至少包含一个数字(使用指定的语言numSet),并且仅由数字组成。
可以指定所需语言的charSet/numSet范围。Unicode范围可在Unicode图表。
API:
public static bool IsAlphaNumeric(this string stringToTest)
{
// English
const string charSet = "a-zA-Z";
const string numSet = @"0-9";
// Greek
//const string charSet = @"\u0388-\u03EF";
//const string numSet = @"0-9";
// Bengali
//const string charSet = @"\u0985-\u09E3";
//const string numSet = @"\u09E6-\u09EF";
// Hindi
//const string charSet = @"\u0905-\u0963";
//const string numSet = @"\u0966-\u096F";
return Regex.Match(stringToTest, @"^(?=[" + numSet + @"]*?[" + charSet + @"]+)(?=[" + charSet + @"]*?[" + numSet + @"]+)[" + charSet + numSet +@"]+$").Success;
}
public static bool IsNumeric(this string stringToTest)
{
//English
const string numSet = @"0-9";
//Hindi
//const string numSet = @"\u0966-\u096F";
return Regex.Match(stringToTest, @"^[" + numSet + @"]+$").Success;
}
public static bool IsAlpha(this string stringToTest)
{
//English
const string charSet = "a-zA-Z";
return Regex.Match(stringToTest, @"^[" + charSet + @"]+$").Success;
}
用法:
// English
string test = "AASD121asf";
// Greek
//string test = "Ϡϛβ123";
// Bengali
//string test = "শর৩৮";
// Hindi
//string test = @"क़लम३७ख़";
bool isAlphaNum = test.IsAlphaNumeric();
下面的正则表达式匹配字母数字字符和下划线:
^[a-zA-Z0-9_]+$
例如,在Perl中:
#!/usr/bin/perl -w
my $arg1 = $ARGV[0];
# Check that the string contains *only* one or more alphanumeric chars or underscores
if ($arg1 !~ /^[a-zA-Z0-9_]+$/) {
print "Failed.\n";
} else {
print "Success.\n";
}
嗯…问题:它是否至少需要一个字符?它可以是空字符串吗?
^[A-Za-z0-9_]+$
将至少做一个大写或小写字母数字或下划线。如果它的长度可以为零,那么只需用+替换*:
^[A-Za-z0-9_]*$
如果需要包含变音符字符(例如cedilla - ç),那么您将需要使用单词character,其功能与上述相同,但包括变音符字符:
^\w+$
Or
^\w*$
这对我很有用。你可以试试:
[\\p{Alnum}_]
在计算机科学中,字母数字值通常意味着第一个字符不是数字,而是字母或下划线。后面的字符可以是0-9、A-Z、A-Z或下划线。
你可以这样做:
在PHP下测试:
$regex = '/^[A-Za-z_][A-Za-z\d_]*$/'
或者采取
^[A-Za-z_][A-Za-z\d_]*$
并将其放在您的开发语言中。