没有任何空格的AlphaNumeric,Hyphen和Underscore的正则表达式

时间:2016-07-08 11:21:50

标签: java regex

我想要一个正则表达式来检查字符串是否包含字母数字,连字符和下划线。除了这三个之外,不应该有任何空格或其他特殊字符。我的字符串将属于这两种模式中的任何一种。

  • XYZ0123_123456
  • ABCdefGHI-727

我已经尝试过这个表达式。但它没有锻炼。 [[a-zA-Z0-9_-]*]

2 个答案:

答案 0 :(得分:10)

<强>工作
这是快速解决方案。

String regex = "^[a-zA-Z0-9_-]*$";
sampleString.matches(regex);
  • (^)anchor表示字符串的开头

  • ($)anchor表示字符串的结尾

  • A-Z,a-z代表字符范围

  • 0-9代表数字范围

  • (_)代表下划线

  • ( - )代表连字符

答案 1 :(得分:6)

您可以^[\w-]*$使用\w表示:

  • a-zA-Z
  • 范围内的任何字母
  • 来自0 to 9
  • 的任何数字
  • underscore

您所犯的错误是在字符类中封装正确的正则表达式([a-zA-Z0-9_-]* == [\w-]*),从而丢失量词(*)含义