我在 Java中有一个正则表达式的奇怪问题.我测试了我的正则表达式和我的价值 here,它的工作原理.它说有3组(正确)第一组(不是组零!)的匹配是SSS,组2的匹配是BB,组3的匹配是0000.但是我的代码下面失败了,我相当一个亏损为什么…
String pattern = "([^-]*)-([\\D]*)([\\d]*)";
String value = "SSS-BB0000";
Matcher matcher = Pattern.compile(pattern).matcher(value);
//group() is equivalent to group(0) - it fails to match though
matcher.group();

以下是上述网站匹配结果的屏幕截图:

我会非常感激,如果有人可以指出我正在做的错误…另外一个注意事项:奇怪的是,如果我执行以下代码,则返回true,这意味着应该可以进行匹配

//returns true
Pattern.matches(pattern,value);

解决方法

您需要在group()之前调用find():
String pattern = "([^-]*)-([\\D]*)([\\d]*)"; 
String value = "SSS-BB0000";
Matcher matcher = Pattern.compile(pattern).matcher(value); 
if (matcher.find()) {
  System.out.println(matcher.group()); // SSS-BB0000
  System.out.println(matcher.group(0)); // SSS-BB0000
  System.out.println(matcher.group(1)); // SSS
  System.out.println(matcher.group(2)); // BB
  System.out.println(matcher.group(3)); // 0000
}

当你调用matcher(value)时,你只是创建一个Matcher对象,它能够匹配你的值.为了实际扫描输入,您需要使用find()或lookingAt():

参考文献:

> Matcher#find()

Java Regex:matches(pattern,value)返回true,但group()无法匹配的更多相关文章

  1. android – Espresso – 检查ListView中是否存在TextView

    我想在列表中查看SaveXX的显示.保存XX是一个可见或不可见的TextView.我使用JUnit4和Espresso2.2.1.我试着像这样检查:但总是得到一个错误:如果使用Espresso在ListView中存在TextView,有没有办法?UPDATE我也试过使用onData:但似乎onData适用于数据层,但不适用于视图层.因此,我收到错误:解决方法经过几次尝试,我找到了方法.在这种情况下,我们应该使用组合方法并使用数据和视图层.我们按ID访问ListView并选择第一项.然后检查它是否为“保存”

  2. Android Espresso:如何断言不应显示视图

    但它抛出了这个异常:不应该显示断言视图的最佳方法是什么?

  3. android – Espresso与意图之间的区别是什么?

    自从我学习浓缩咖啡以来已经有两周时间了,我无法掌握有意和有意的事情.我何时使用有意和有意?解决方法区别在于Intended仅验证Intent是否已启动.当Intent启动时,Intending将返回结果.对于预期如果您按下按钮并启动,例如MyActivity,并且您针对TagListActivity进行测试,则会失败.它会抛出以下错误:现在,如果您正在测试onActivityResult是否已正确处理,您将使用Intending并传入类似于此的ActivityResult:因此,在这种情况下,如果您希望“

  4. 与Android中的ORB匹配错误

    我的代码工作良好,但是当它提取关键点时,它匹配的两个图像差.在这里你可以找到我的代码,但是我不知道如何在JAVAAndroid中绘制出很好的匹配任何建议?

  5. centos – rpm2cpio从RPM跳过文件

    这些步骤来自运行CentOS6.5的盒子.我只是尝试将RPM包转换为CPIO存档,并且惊讶地发现RPM中列出的文件但存档中没有.以下是采取的步骤.列出RPM中的路径:将RPM转换为CPIO存档:保存存档中的文件列表.需要使用sed过滤器从路径名中删除前导点条目.RPM列表不需要这样做.最后,diff显示丢失的文件:为什么RPM中存在文件但CPIO存档中缺少?

  6. php – 如果是IE 6,我想制作警告并免费下载其他浏览器图标

    我的网站想要打开IE7及以上版本.如果是IE6,我想制作警告并免费下载其他浏览器图标.这可能吗?

  7. php – 如何在Steam WebAPI中获取应用程序的价格?

    有没有可能通过WebAPI从Steam获取游戏的价格?

  8. php – 如何根据解释结果改进此查询

    所以它也应该是一个整数,以避免将varchars转换为int的开销,反之亦然,并允许在任何一种情况下使用索引.虽然与此特定查询无关,但以下两个字段也需要注意并正确转换:在改进查询…)子句的单独查询,如前所述.

  9. windows-server-2008-r2 – PowerShell脚本的电子邮件结果

    我有一个powershell脚本,用于检查证书存储区是否存在过期证书.它将在CLI中显示这些结果.我想修改此脚本以通过电子邮件发送电子邮件正文中的输出结果.我知道如何使用send-mailmessageCmdLet通过PowerShell发送电子邮件,但我不确定如何获取脚本的结果并将其发送到电子邮件中…

  10. 正则表达式匹配任何字符串powershell

    无论我觉得我如何知道正则表达式,他们总是似乎打败了我.我正在寻找一个匹配任何字符串的通用模式.我唯一可以弄清楚如何处理所有这些不同的命名约定的方法,是制作了一堆不同的正则表达式,现在我甚至不确定所有的数据是否被拾取,所以我必须手动交叉检查它.我只是想拿起任何可能在两个方括号内的东西[]:我这样做的方式不会产生错误,但我不确定它是否处理了我可能遇到的所有情况.手动检查几乎不可能有这么多的数据.另外,

随机推荐

  1. 基于EJB技术的商务预订系统的开发

    用EJB结构开发的应用程序是可伸缩的、事务型的、多用户安全的。总的来说,EJB是一个组件事务监控的标准服务器端的组件模型。基于EJB技术的系统结构模型EJB结构是一个服务端组件结构,是一个层次性结构,其结构模型如图1所示。图2:商务预订系统的构架EntityBean是为了现实世界的对象建造的模型,这些对象通常是数据库的一些持久记录。

  2. Java利用POI实现导入导出Excel表格

    这篇文章主要为大家详细介绍了Java利用POI实现导入导出Excel表格,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  3. Mybatis分页插件PageHelper手写实现示例

    这篇文章主要为大家介绍了Mybatis分页插件PageHelper手写实现示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  4. (jsp/html)网页上嵌入播放器(常用播放器代码整理)

    网页上嵌入播放器,只要在HTML上添加以上代码就OK了,下面整理了一些常用的播放器代码,总有一款适合你,感兴趣的朋友可以参考下哈,希望对你有所帮助

  5. Java 阻塞队列BlockingQueue详解

    本文详细介绍了BlockingQueue家庭中的所有成员,包括他们各自的功能以及常见使用场景,通过实例代码介绍了Java 阻塞队列BlockingQueue的相关知识,需要的朋友可以参考下

  6. Java异常Exception详细讲解

    异常就是不正常,比如当我们身体出现了异常我们会根据身体情况选择喝开水、吃药、看病、等 异常处理方法。 java异常处理机制是我们java语言使用异常处理机制为程序提供了错误处理的能力,程序出现的错误,程序可以安全的退出,以保证程序正常的运行等

  7. Java Bean 作用域及它的几种类型介绍

    这篇文章主要介绍了Java Bean作用域及它的几种类型介绍,Spring框架作为一个管理Bean的IoC容器,那么Bean自然是Spring中的重要资源了,那Bean的作用域又是什么,接下来我们一起进入文章详细学习吧

  8. 面试突击之跨域问题的解决方案详解

    跨域问题本质是浏览器的一种保护机制,它的初衷是为了保证用户的安全,防止恶意网站窃取数据。那怎么解决这个问题呢?接下来我们一起来看

  9. Mybatis-Plus接口BaseMapper与Services使用详解

    这篇文章主要为大家介绍了Mybatis-Plus接口BaseMapper与Services使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  10. mybatis-plus雪花算法增强idworker的实现

    今天聊聊在mybatis-plus中引入分布式ID生成框架idworker,进一步增强实现生成分布式唯一ID,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

返回
顶部