java - java中的正则表达式仅允许字母数字输入数据

标签 java regex alphanumeric

我需要仅接受字母数字数据的正则表达式。

例如:ABC12DG - 应该允许这样做

如果输入数据是 123000 - 不应允许,因为它只是数字。

我已经尝试过了

假设a是一个包含输入数据的字符串

然后 a.matches("^[a-zA-Z0-9]+$") 这允许如上所述的第一个和第二个输入

我只希望它允许字母数字输入,而不仅仅是数字或字母 如何做到这一点

最佳答案

使用负前瞻或交替运算符。

a.matches("^(?![A-Za-z]+$)(?!\\d+$)[a-zA-Z0-9]+$");
  • (?![A-Za-z]+$) 断言匹配不仅仅包含字母。
  • (?!\\d+$) 断言匹配不仅仅包含数字。
  • [a-zA-Z0-9]+ 匹配一个或多个字母数字字符。

a.matches("^[a-zA-Z0-9]*(?:[a-zA-Z]\\d|\\d[a-zA-Z])[a-zA-Z0-9]*$");

关于java - java中的正则表达式仅允许字母数字输入数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34350055/

相关文章:

java - JXTable listen sort 和排序类似的表的方式相同

java - SQL查询仅显示一个结果(第一个),但不显示所有结果

java - JTextPane : Identifying Strings

regex - 正则表达式中的最小长度

php - 删除空格和任何非字母数字的内容

java - 递归回文测试不能包含特殊字符

java - 调整 JOptionPane 对话框和对话框中线条的大小

java - 覆盖 Hashmap<String,String> 的等于

ruby - 使用 Regexp 在 Ruby 中匹配模式

php - 编码一般的 4 位字母数字系列