是否有正则表达式检查字符串是否只包含大写字母、小写字母、数字和下划线?
当前回答
对于Java,只允许不区分大小写的字母数字和下划线。
^匹配以任何字符开头的字符串 [a-zA-Z0-9_]+匹配字母数字字符和下划线。 $匹配以0或多个字符结尾的字符串。 公共类RegExTest { public static void main(String[] args) { System.out.println(“_C #”.matches (" ^ [a-zA-Z0-9_] + $ ")); } }
其他回答
Use
^([A-Za-z]|[0-9]|_)+$
...如果你想要明确,或者:
^\w+$
...如果您更喜欢简洁(Perl语法)。
要检查整个字符串并且不允许空字符串,请尝试
^[A-Za-z0-9_]+$
在计算机科学中,字母数字值通常意味着第一个字符不是数字,而是字母或下划线。后面的字符可以是0-9、A-Z、A-Z或下划线。
你可以这样做:
在PHP下测试:
$regex = '/^[A-Za-z_][A-Za-z\d_]*$/'
或者采取
^[A-Za-z_][A-Za-z\d_]*$
并将其放在您的开发语言中。
这对我很有用。我在O'Reilly的“精通正则表达式”中发现了这个:
/^\w+$/
解释:
^声明字符串开始的位置 \w+匹配任何单词字符(等于[a-zA-Z0-9_]) “+”量词-在一次和无限次之间进行匹配,尽可能多地进行匹配,根据需要进行回馈(贪婪) $在字符串的末尾断言位置
验证自己:
Const regex = /^\w+$/ Const STR = ' nut_cracker_12 '; 让米; If ((m = regex.exec(str)) !== null) { //结果可以通过' m '变量访问。 m.forEach((match, groupIndex) => { console.log('找到匹配,组${groupIndex}: ${match} '); }); }
试试我为字符串做的这些多语言扩展。
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();
推荐文章
- Ruby正则表达式中\A \z和^ $的区别
- 用于匹配英国邮政编码的正则表达式
- 将所有非字母数字字符替换为空字符串
- 我如何能匹配一个字符串与正则表达式在Bash?
- 使用RegExp.exec从字符串中提取所有匹配项
- 仅用Regex替换某些组
- 使用正则表达式解析HTML:为什么不呢?
- 正则表达式来匹配不是空格的单个字符
- 在JavaScript中检查字符串包含另一个子字符串的最快方法?
- Python非贪婪正则表达式
- 正则表达式可以用来匹配嵌套模式吗?
- 在bash中使用正则表达式进行搜索和替换
- 将camelCaseText转换为标题大小写文本
- 正则表达式在Javascript中获取两个字符串之间的字符串
- Regex测试字符串是否以http://或https://开头