当前位置: 首页 > 面试题库 >

Java匹配与JavaScript匹配之间的结果差异

翟俊哲
2023-03-14
问题内容

做一个简单的测试时,我就在用Java编写正则表达式

Pattern.matches("q", "Iraq"); //false
"Iraq".matches("q"); //false

但是在JavaScript中

/q/.test("Iraq"); //true
"Iraq".match("q"); //["q"] (which is truthy)

这里发生了什么?我可以使我的Java regex模式“ q”的行为与JavaScript相同吗?


问题答案:

在JavaScript中,match返回与使用的正则表达式匹配的子字符串。在Java中,matches检查整个字符串是否与正则表达式匹配。

如果要查找与正则表达式匹配的子字符串,请使用Pattern和Matcher类,例如

Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(yourData);
while(m.find()){
   m.group();//this will return current match in each iteration
   //you can also use other groups here using their indexes
   m.group(2);
   //or names (?<groupName>...)
   m.group("groupName");
}


 类似资料:
  • 它看起来像hamcrest(尽管看起来,还有更多)。为什么我会选择使用(除了看起来类稍微小一点之外),为什么这两个类如此相似?

  • 本文向大家介绍java模式匹配之蛮力匹配,包括了java模式匹配之蛮力匹配的使用技巧和注意事项,需要的朋友参考一下 java模式匹配之蛮力匹配 使用示例: 以上所述就是本文的全部内容了,希望大家能够喜欢。

  • 我正在为我的 REST API 控制器编写测试,我需要检查返回的 对象中的 值,请参阅此测试方法: 但是测试产生了这个错误: 似乎ID被正确返回,但被序列化为不同的结构。 我的代码有什么问题?

  • 我和ElasticSearch一起工作。当我执行此查询时: 我得到了我想要的(所有的结果,其中有参考黑莓,但不是Q10)。 但是,我想限制搜索的字段只限于“title”字段。例如,_source文档有标题、正文、标签等,我只想搜索标题。ElasticSearch“匹配”似乎很适合我... 虽然这只成功地搜索了标题,但它仍然返回标题中带有Q10的结果,这与上面的搜索不同。 我正在看比赛文档,但似乎不

  • 我有一个接口,它提供了一个方法,返回一个,其中包含一个

  • 当我通过一个特定方面进行过滤时,该特定字段的方面在结果中被正确过滤,但其他方面的字段保持不变。解释这一点的最佳方法是使用查询和响应。 因此,如您所见,它返回所有方面,即使唯一的结果位于Eugene。它还返回的计数7。为什么它会返回所有这些额外的方面和错误的计数?下面是我的ruby映射。