我有以下正则表达式^[a-zA-Z0-9]+$
,它允许使用字母数字字符。这里的问题是,如果我只输入像“897687”这样的数字字符,那么正则表达式仍然匹配。我不希望这种情况发生。应该至少有一个文本字符,它应该以文本字符开头。例如“a343”或“a98bder”或“a4544fgf343”
如果你可以帮助我提高我的正则表达式,那就太好了。
答案 0 :(得分:39)
听起来像你想要的那样:
^[a-zA-Z][a-zA-Z0-9]*$
答案 1 :(得分:13)
如果ASCII字符在某些时候还不够,这里是Unicode版本:
^\p{L}[\p{L}\p{N}]*$
\p{L}
是具有属性字母==>属性的任何Unicode代码点。来自任何语言的任何字母(即Unicode)
\p{N}
是任何具有属性编号==>的Unicode代码点。来自任何语言的任何数字字符(即Unicode)
答案 2 :(得分:4)
^[a-zA-Z][a-zA-Z0-9]*$
应该做的伎俩!
或者,如果您希望包含所有字母数字和下划线,您可以使用:
^[a-zA-Z][\w]*$
答案 3 :(得分:2)
此函数将根据正则表达式是否匹配返回true或false,
public static Boolean isAlphaNumeric(string strToCheck)
{
Regex rg = new Regex(@"^[a-zA-Z0-9\s,]*$");
return rg.IsMatch(strToCheck);
}
答案 4 :(得分:2)
或者比接受的答案略微冗长:
^[a-zA-Z][\w]*$
C#正则表达式有字符类指示符" \ w"对于字母数字字符,但没有字母(仅数字)的字符类,因此您必须手动指定类集[a-zA-Z]。
答案 5 :(得分:0)
这是检查字母数字的最佳解决方案,
如果是字母数字 - “成功”。
Spannable text = Build.VERSION.SDK_INT > Build.VERSION_CODE.N
? Html.fromHtml(htmlString, Html.FROM_HTML_MODE_LEGACY, null, null)
: Html.fromHtml(htmlString, null, null);