我希望有一个正则表达式,检查字符串是否包含字母数字、连字符和下划线,除此之外不应有空格或其他特殊字符。我的字符串将符合以下两种模式之一:
XYZ0123_123456
ABCdefGHI-727
我已经尝试了这个表达式,但没有成功:[[a-zA-Z0-9_-]*]
我希望有一个正则表达式,检查字符串是否包含字母数字、连字符和下划线,除此之外不应有空格或其他特殊字符。我的字符串将符合以下两种模式之一:
XYZ0123_123456
ABCdefGHI-727
我已经尝试了这个表达式,但没有成功:[[a-zA-Z0-9_-]*]
工作中
这是一个快速解决方案。
String regex = "^[a-zA-Z0-9_-]*$";
sampleString.matches(regex);
(^)锚点表示字符串的开头
($)锚点表示字符串的结尾
A-Z、a-z表示字符范围
0-9表示数字范围
(_)表示下划线
(-)表示连字符
^[\w-]*$
,其中\w
表示:
a-z
,A-Z
,0到9
的任何数字,下划线
[a-zA-Z0-9_-]*
== [\w-]*
)封装在字符类中,失去了量词(*
)的含义。^
和 $
是锚点。它们分别表示字符串的开头 (^
) 和结尾 ($
)。如果您希望您的字符串仅由字母数字、下划线和连字符组成,那么是的,请将其包含在内 :) - Thomas AyoubABCdefGHI-727
运行良好,但在 XYZ0123_123456
上失败了。我们有什么遗漏的吗? - Gautam RXYZ0123_123456
。错误来自其周围的代码,请编辑您的问题 :) - Thomas Ayoub