我需要仅接受字母数字数据的正则表达式。
例如: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/