Spe*_*ump 1 java regex spaces alphanumeric
我不是正则表达式的专家,但我需要解析一些我无法控制的输入,并确保我过滤掉任何没有Az和/或0-9的字符串.
当我跑这个,
Pattern p = Pattern.compile("^[a-zA-Z0-9]*$"); //fixed typo
if(!p.matcher(gottenData).matches())
System.out.println(someData); //someData contains gottenData
Run Code Online (Sandbox Code Playgroud)
某些空格+一个未知的符号以某种方式滑过过滤器(gottenData是红色矩形):

如果你想知道,它也显示文本,它不是那样的.
现在,我不介意[?],只要它还包含一些字符串.
请帮忙.
[编辑]据我所知(非常大)输入,[?]是白色空格要么根本没有; 也许有某种编码问题,也许与#text节点有关(输入是xml)
*量词匹配"零或更多",这意味着它将匹配不包含类中任何字符的字符串.尝试+量词,这意味着"一个或多个":^[a-zA-Z0-9]+$将仅匹配由字母数字字符组成的字符串. ^.*[a-zA-Z0-9]+.*$将匹配包含一个或多个字母数字字符的任何字符串,尽管前导.*会使它慢得多.如果您使用Matcher.lookingAt()而不是Matcher.matches,则不需要完整的字符串匹配,您可以使用正则表达式[a-zA-Z0-9]+.