当前位置: 首页 > 知识库问答 >
问题:

Regex在String.matches()中不起作用

李俊雅
2023-03-14

我有一小段代码

String[] words = {"{apf","hum_","dkoe","12f"};
for(String s:words)
{
    if(s.matches("[a-z]"))
    {
        System.out.println(s);
    }
}

本来是要打印的

dkoe

但它什么也没打印!!

共有3个答案

芮化
2023-03-14

String.matches返回整个字符串是否匹配正则表达式,而不仅仅是任何子字符串。

隆礼骞
2023-03-14

[a-z]匹配a和z之间的单个字符。因此,例如,如果您的字符串只是“d”,则它将匹配并打印出来。

您需要将正则表达式更改为[a-z]以匹配一个或多个字符。

邹英发
2023-03-14

欢迎来到Java的错误命名的.matches()方法...它尝试并匹配所有输入。不幸的是,其他语言也纷纷效仿:(

如果要查看正则表达式是否与输入文本匹配,请使用<code>模式、<code>匹配器和<code>。匹配器的find()方法:

Pattern p = Pattern.compile("[a-z]");
Matcher m = p.matcher(inputstring);
if (m.find())
    // match

如果您想要的确实是查看输入是否只有小写字母,您可以使用.匹配(),但您需要匹配一个或多个字符:将附加到您的字符类,如[a-z]。或者使用^[a-z]$. search()

 类似资料:
  • 问题内容: 我有以下javascript代码: 但是,对于我通过的任何值(02/2010),我的regEx测试始终返回false。我的代码有问题吗?我已经在各种javascript编辑器上在线尝试了此代码,并且效果很好。 问题答案: 因为要从字符串创建正则表达式,所以必须加倍反斜杠: 以字符串开头时,必须考虑以下事实:正则表达式将首先被解析为这样的形式,即作为JavaScript字符串常量。字符串

  • 问题内容: 为什么这行代码不起作用?应该将所有标点符号全部替换为空。 在Java中执行此行后,即使m包含标点符号,m也不会更改。为什么? 问题答案: 这是因为需要; 您需要调用,它确实需要一个正则表达式。

  • 执行控制器方法时,我收到以下日志: ObjECT:[字段名称上的对象目录中的字段错误:拒绝值[safasf];代码[Pattern.catalog.name, Pattern.name, Pattern.java.lang.String, Pattern];参数[org.springframework.context.support.DefaultMessageSourceResolable:代码

  • 我有一些 在量角器中,我们搜索并找到元素,检查文本是否符合我们的期望,然后对该元素调用。测试在Chrome中运行良好,但在IE中就好像没有点击发生一样。破坏了测试。 IE 11是否支持点击

  • 问题内容: 我注意到less.js在firefox中工作,但在Chrome中不工作,或者是因为我出错了吗? 即使我尝试在Chrome中仍然无法使用,我在某个地方犯了错误吗? 问题答案: 通过您提供的链接: 如果您使用的是Chrome,Less.js浏览器脚本当前将无法使用,并且由于已知的Chrome问题,网页的路径以“file:///”开头。

  • 问题内容: 不仅如此,其他代码也有相同的问题。只是不能使用ImageView。 环境:macOS,IntelliJ 造成原因:java.lang.IllegalArgumentException:无效的URL:无效的URL或找不到资源 问题答案: 该图像构造函数接受一个url作为参数。如果您未在其中添加协议,则它将假定该项目来自类路径。显然,不会出现在您的类路径中。 要从文件而不是类路径中读取,请