Regular Expression for alphanumeric and underscores
我希望有一个正则表达式来检查字符串是否只包含大小写字母、数字和下划线。
匹配的字符串,只包含那些人物(或空字符串),尝试
1 | "^[a-zA-Z0-9_]*$" |
本作品为.NET正则表达式,可能很多其他语言的精髓。
破掉它。
1 2 3 4 5 6 7 8 9 | ^ : start of string [ : beginning of character group a-z : any lowercase letter A-Z : any uppercase letter 0-9 : any digit _ : underscore ] : end of character group * : zero or more of the given characters $ : end of string |
如果你不想允许空字符串使用+"*。
为他人编辑出有一些尖锐的语言,正则表达式有一个形状的
有一个冗长的很多在这里,和我对它的深,所以,我的回答是:conclusive
1 | /^\w+$/ |
你会使用
你要检查,每个字符匹配您的需求,这就是为什么我们使用:
1 | [A-Za-z0-9_] |
你甚至可以使用速记版本:
1 | \w |
这是等价的(在一些正则表达式的香料,所以确保你检查之前,你使用它)。然后,一个显示整个字符串,你必须匹配,使用:
1 | ^ |
一个显示字符的字符串必须使用启动吗。
1 | $ |
一个字符串表示的字符必须结束吗。然后使用
1 | \w+ or \w* |
来表示"1"或"0",更多的"更多"。把它所有的一起,我们有:
1 | ^\w*$ |
虽然它比
1 | ^[[:alnum:]_]+$ |
然而,尽管上述链接中的文档指出,
1 | ^\w+$ |
除了可读性之外,使用posix字符类(http://www.regular-expressions.info/posixbrackets.html)意味着您的regex可以处理非ascii字符串,而基于范围的regex则不能这样做,因为它们依赖于ascii字符的底层顺序,这可能与其他字符集不同,因此将排除您可能需要捕获一些非ASCII字符(如&339;)。
为了...question:是需要有至少一个字符或没有?它可以在空的字符串?
1 | ^[A-Za-z0-9_]+$ |
要做至少一上或alphanumeric或下划线的小写。如果它可以零长度,然后只是一个替代品* +
1 | ^[A-Za-z0-9_]*$ |
编辑:
如果需要包含变音符号(如cedilla和# 231;)然后你会需要使用Word字符是不一样的。在上面的,但diacritic人物包括:
1 | ^\w+$ |
或
1 | ^\w*$ |
在计算机科学中,字母数字值通常意味着第一个字符不是数字,而是字母或下划线。此后,字符可以是
您可以这样做:
在php下测试:
1 | $regex = '/^[A-Za-z_][A-Za-z\d_]*$/' |
还是拿这个
1 | ^[A-Za-z_][A-Za-z\d_]*$ |
并将其放在开发语言中。
如何:
1 | ^([A-Za-z]|[0-9]|_)+$ |
如果你想显,或:
1 | ^\w+$ |
如果你喜欢简明(Perl的语法)。
使用lookaheads做"至少一个"的东西。信托我它是多容易。
这里是一个例子,包括在1 10的字符,数字和一个含至少一个字母:
1 | ^(?=.*\d)(?=.*[A-Za-z])[A-Za-z0-9]{1,10}$ |
注:没有使用的W然后ECMA / Unicode字符考虑到即插即用来增加覆盖"W"Word字符"。
试试我为字符串做的这些多语言扩展。
isalphanumeric-字符串必须至少包含1个字母(Unicode范围内的字母,用字符集指定)和1个数字(用numset指定)。此外,字符串应该只包含字母和数字。
isalpha-字符串应至少包含1个alpha(以指定的语言字符集表示),并且只包含alpha。
isnumeric-字符串应至少包含1个数字(使用指定的语言numset),并且只包含数字。
可以指定所需语言的charset/numset范围。Unicode范围在以下链接上可用:
http://wwwss.WISC.EDU/~ TMW/Java/UnoDe.HTML
应用程序编程接口:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | 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; } |
用途:
1 2 3 4 5 6 7 8 9 10 11 12 13 | //English string test ="AASD121asf"; //Greek //string test ="??β123"; //Bengali //string test ="????"; //Hindi //string test = @"??????"; bool isAlphaNum = test.IsAlphaNumeric(); |
下面的正则表达式匹配alphanumeric字符和下划线:
1 | ^[A-Za-z0-9_]+$ |
例如,在Perl中:
1 2 3 4 5 6 7 8 9 10 11 12 | #!/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. "; } else { print"Success. "; } |
我有问题,我想在区分数字和数字之间的α,α,从而确保在alphanumeric字符串包含至少一个数字和至少一个alpha,i用:
1 | ^([a-zA-Z_]{1,}\d{1,})+|(\d{1,}[a-zA-Z_]{1,})+$ |
对于那些寻找Unicode字母数字匹配的用户,您可能需要执行以下操作:
1 | ^[\p{L} \p{Nd}_]+$ |
进一步阅读http://unicode.org/reports/tr18/及AThttp://www.regular-expressions.info/unicode.html
这里是你想要的正则表达式的一个量词指定至少1字符和不超过255个字符
[(a-za-z0-9 1255 _ ] { }
A匹配正则表达式符号打开整个CAN(蠕虫,特别当考虑到以Unicode编码。你可能会想读的,特别是关于POSIX locale。
我相信你不会在比赛中使用拉丁和Unicode字符。例如,如果需要使用"?"或者"_"字符,"w"的使用将不起作用。
您也可以使用以下方法:
1 | ^[A-Zà-Ya-zà-y0-9_]+$ |
希望它有帮助!
检查整个字符串不允许空字符串,try
1 | ^[A-Za-z0-9_]+$ |
这对我有效,你可以试试
^ W*美元适用于以下组合一一百二十三1AV赞成的意见AV1