gpt4 book ai didi

java - 如何在java中编写和使用正则表达式

转载 作者:搜寻专家 更新时间:2023-11-01 00:55:06 24 4
gpt4 key购买 nike

我想在 java 中编写一个正则表达式,它将接受具有字母、数字和空格的字符串在任何地方出现任意次数。

该字符串应仅包含上述字符,不得包含其他特殊字符。如何在 java 中编写正则表达式?

我尝试了以下方法,当我将它作为 Java 应用程序运行时它有效。

但是当我在 Web 应用程序中运行并通过 XML 接受值时,相同的代码接受“/”。

 String test1 = null;

Scanner scan = new Scanner(System.in);
test1 = scan.nextLine();

String alphaExp = "^[a-zA-Z0-9-]*$";

Pattern r = Pattern.compile(alphaExp);
Matcher m = r.matcher(test1);

boolean flag = m.lookingAt();

System.out.println(flag);

谁能帮我解决这个问题?

最佳答案

您可以尝试使用 POSIX 字符类(参见 here):

Pattern p = Pattern.compile("^[\\p{Alnum}\\p{Space}-]*$");
Matcher m = p.matcher("asfsdf 1212sdfsd-gf121sdg5 4s");
boolean b = m.lookingAt();

使用此正则表达式,如果您传递的字符串包含除字母数字或空格字符之外的任何其他字符,则它将是不匹配结果。

关于java - 如何在java中编写和使用正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37391911/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com