我正在尝试从html页面获取地址。我有一个正则表达式,从中可以找到州,城市和电话号码。String linearray[] = newdoc.split("\n");

int count = 0;

System.out.println(linearray.length);

while(count

{

System.out.println(count);

Pattern pattern = Pattern.compile("(.*?)(\\d{1,4}(\\s*\\w*)*)(\\s*)(CA|AZ|NY)(\\s*)(\\(?[1-9]\\d{2}\\)?\\s*\\d{3}\\d{4})?(.*?)");

Matcher matcher = pattern.matcher(linearray[count].trim());

while (matcher.find()) {

String state = matcher.group(5);

String city = matcher.group(2);

String phone = matcher.group(7);

System.out.println("state "+state+" city "+city+" phone "+phone+" ");

}

count++;

}

当我尝试运行此代码时,它会陷入无限循环。

谁能帮我解决这个问题?

编辑:

当linearray[count]=="Bombay Garden Newark SanMateo SantaClara © 2011 Bombay Garden All Rights Reserved"时,我的代码卡在while(matcher.find())行上。知道为什么它卡在那里吗?当我跳过该行(通过使用continue)时,代码终止就好了!

最佳答案

您的正则表达式导致“catastrophic backtracking”,使其过于复杂而无法运行完成。

考虑将您的正则表达式改写为possessive。

java matcher find,java - 无尽循环matcher.find()相关推荐

  1. JAVA正则表达式:Pattern类与Matcher类详解(转)

    java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包.它包括两个类:Pattern和Matcher Pattern 一个Pattern是一个正则表达式经编译后的表 ...

  2. JAVA正则表达式:Pattern类与Matcher类详解

    java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包.它包括两个类:Pattern和Matcher Pattern 一个Pattern是一个正则表达式经编译后的表 ...

  3. java中正则表达式以及Pattern和Matcher

    正则匹配 // 反斜杠 /t 间隔 ('/u0009') /n 换行 ('/u000A') /r 回车 ('/u000D') /d 数字 等价于[0-9] /D 非数字 等价于[^0-9] /s 空白 ...

  4. java正则hitend,Java Matcher hitEnd()用法及代码示例

    Matcher类的hitEnd()方法用于检查此匹配器上的模式匹配是否已停止.当在匹配器中找不到更多匹配的组时,匹配结束.此方法返回一个声明相同的布尔值. 用法: public boolean hit ...

  5. java pattern用法_Java Pattern和Matcher用法

    Pattern用法 Java正则表达式通过java.util.regex包下的Pattern和Matcher类实现 Pattern类用于创建一个正则表达式,也可以说是创建一个匹配模式,可以通过两个静态 ...

  6. Java—正则表达式(Pattern类和Matcher类)

    正则表达式介绍   正则表达式可以用于对字符串的处理,相当于是一个匹配字符串的模板.主要包含查找.替换.分割.提取等操作:Java中通过Pattern和Matcher类提供对正则的支持. 字符处理 特 ...

  7. java matcher.group_详解正则表达式Matcher类中group方法

    前言 同事把一个excel表给我,里面的数据大概有几千的样子吧.自己需要把里面的数据一个一个拿出来做一个http请求,对得到的结果进行过滤,然后再写到上面去.这是就涉及到用脚本来进行操作了,于是自己搞 ...

  8. java的matcher方法_Java-Android-正则表达式-Matcher方法

    之前我们看了下正则的基本语法规则以及简单的正则创建和匹配写法.这里我们就重点关注下具体的匹配对象提供的一些方法,基本都过一遍,然后我们针对邮箱.电话等做一些练习(过程中不会的我们再回过头的复习一下) ...

  9. java pattern matcher_JAVA中Pattern和Matcher的用法

    Pattern和Matcher String上可使用正则表达式的操作,实际上是利用了java.util.regex.Pattern与java.util.regex.Matcher的功能.当调用Stri ...

最新文章

  1. matlab在测量数据处理中的应用,MATLAB在测量数据处理中的应用
  2. 软件定义闪存存储系统关键技术
  3. 天体运行轨迹_海王星轨道外发现139个新天体, 能揭开太阳系第九颗行星奥秘?...
  4. GT Transceiver中的重要时钟及其关系(6)TXUSRCLK以及TXUSRCLK2的用途与关系
  5. NYOJ 45 棋盘覆盖
  6. jquery+javascript触发a标签的点击事件
  7. 解决HttpServletResponse输出中文乱码问题
  8. oracle快照太旧含义,全解ORA-1555快照太旧错误原理及解决方案
  9. ObjectiveC 深浅拷贝学习
  10. WordPress 常用数据库SQL查询语句大全
  11. maven 国内私服
  12. 北交所开市工作准备就绪 定于2021年11月15日开市
  13. 怎么查看页面跳转过程_faststone注册码怎么获取?英文官网打不开
  14. python列表的表示形式_将列表的字符串表示形式转换为Python中的列表
  15. excel手机版_手机自带便签如何导入新手机?试试这款便签同步助手
  16. logback log4j log4j2 性能实测
  17. Thingsboard 3.1.0 - 远程控制和GPIO状态显示
  18. mod sim tcp配置_ModSim32和ModScan32两种Modbus调试工具使用说明
  19. 洛谷p3376 网络流最大流模板题
  20. 电气规则检查-ERC

热门文章

  1. python paramiko sftp_paramiko ssh sftp
  2. 如何把20秒熊本熊GIF图发送给微信好友
  3. 一个批发经销商的管理流程个案
  4. STM32 HAL库窗口看门狗
  5. CentOS上最佳的第三方仓库
  6. js事件委托及其原理
  7. php查询车辆违章付费源码,全国交通违章查询
  8. Hadoop的TaskTracker黑名单机制
  9. 三星Galaxy On7配置泄密 又是一款入门手机
  10. python挣钱路子_野路子学习esp32(十四) 学习ESP32真正的好东西 MicroPython 以及 1z实验室@a.宏万...