java - 仅允许使用 java 的字母数字值

标签 java regex

我需要得到只有字母数字的值,它可以是任何属于这个的值

1. asd7989 - true
2. 7978dfd - true
3. auo789dd - true
4. 9799 - false
5.any special characters - false

我尝试了以下但它没有给出预期的结果

import java.util.regex.Matcher;
import java.util.regex.Pattern;

import org.apache.struts.action.ActionMessage;

public class Test {

  public static void main(String[] args) {

      Pattern pattern = Pattern.compile("^[0-9a-zA-Z]+$");
      Matcher matcher = pattern.matcher("465123");
      if(matcher.matches()) {
           System.out.println("match");
      }else{
          System.out.println("not match");
      }
  }
}

结果实际上应该是不匹配,但我得到的是匹配

最佳答案

您需要为此正则表达式使用前瞻:

^(?=.*?[a-zA-Z])(?=.*?[0-9])[0-9a-zA-Z]+$

RegEx Demo

Lookaheads 将确保输入字符串中至少存在一个字母表和至少一个数字。

关于java - 仅允许使用 java 的字母数字值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26010162/

相关文章:

java - 根据最后一列排序

c# - 将 Python re.sub 转换为 C#

java - 使用 Luna eclipse 进行 Weblogic Maven 部署

java - 将 Ignite 与 mysql 一起用作第 3 方持久存储时,如何确保缓存键和对象 id 相同

java - 为什么 Java 不允许注入(inject)嵌套泛型?

java - Unresolved junit 编译问题

python - 解包类似元组的文本文件

regex - 当源包含 unicode 字符时,Swift Regex 匹配失败

java - 如何阅读管道分隔线 |来自一个文件并在两个不同的 ArrayList 中拆分整数

regex - Dart http请求用表达式语言操作一个网站