正则表达式死循环求教

问题描述

正则表达式死循环求教

用java执行 正则表达邮箱验证的时候 死循环 ,代码如下
String email ="dnjnfslkffkjkjkslioeo9edkdjfks";
String e = "^(w+((-w+)|(.w+))*)+w+((-w+)|(.w+))*@[A-Za-z0-9]+((.|-)[A-Za-z0-9]+)*.[A-Za-z0-9]+$";
boolean b = Pattern.matches(e, email);
System.out.println(b);

    希望哪位高手能给分析下

解决方案

首先这个是JDK的bug。到目前没解决。可以到网上搜索。
其次,为了避免死循环,应该避免正则表达式匹配循环次数过多,那样就会陷入死循环。

所以,需要重新修改下正则表达式。

可以参考这篇文章。
http://www.99inf.net/SoftwareDev/Java/53834.htm

解决方案二:

试试这个正则来匹配EMAIL:

 ^(([^<>()[].,;:s@""]+(.[^<>()[].,;:s@""]+)*)|("".+""))@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}])|(([a-zA-Z-0-9]+.)+[a-zA-Z]{2,}))$
时间: 2024-08-05 17:22:57

正则表达式死循环求教的相关文章

正则表达式小白求教,下面的式子什么意思

问题描述 正则表达式小白求教,下面的式子什么意思 h3>a[id^=uigs] 这个是什么意思?还属于比较小白的程度,需要有人指明一下~ 解决方案 应该是这样: h3标签里的a标签的id以uigs开头的 例如: 解决方案二: 这不是正则表达式吧,是元素选择器的语法哦.意思就是楼上的 解决方案三: 这不是正则表达式,应该是筛选器

小白求解正则表达式遇到的问题

问题描述 小白求解正则表达式遇到的问题 GetShow(2f54d4f7-7431-42fe-9f7e-70e262b9ddc4,)>阳光绿色食品有限公司<>;<>详细地址:安徽岳西县中关乡<>联系电话:0556-2463256<><> 上边字段 我想要截取 阳光绿色食品有限公司 这个正则表达式该怎么写呢? 我写的正则是 ">(.+?)<>;" 获取公司名称)>阳光绿色食品有限公司<>

求教大虾,帮我解释下这个正则表达式

问题描述 求教大虾,帮我解释下这个正则表达式 var content = $.trim($('#addContent').val()).replace(/ /g, '<br/>'); 如题,谢谢大虾啦 解决方案 不就是把换行符号替换为html的换行标签<br>而已,因为 除非放在pre标签里面,要不时不会换行的 解决方案二: 就两个函数,一个trim去年左右两边的空格,一个replace把 替换成吗.................................. 解决方案三:

指针-c++实现多项式相加,加法函数不知道为什么是死循环,调了好久没弄出来,求教

问题描述 c++实现多项式相加,加法函数不知道为什么是死循环,调了好久没弄出来,求教 #include using namespace std; enum error_code { success, overflow, arrange_error }; static int num; struct node { int coef; int exp; node * next; }; class Lpoly { public: Lpoly(); int print(); int insert(int

java-小白求教 正则表达式 只匹配两个相邻的大写字母

问题描述 小白求教 正则表达式 只匹配两个相邻的大写字母 比如 E:srGH0631-1.13.xlsx 只匹配GH 不匹配E 解决方案 [A-Z][A-Z] 或者 [A-Z]{2} ,

递归-这个程序为什么会死循环啊,求教。》》

问题描述 这个程序为什么会死循环啊,求教.>> #!/bin/bash function change() { ls -l > /home/wang/ab.txt #重定向 sed -i '1d' /home/wang/ab.txt cat /home/wang/ab.txt >> /home/wang/b.tx while read line #读取每一行 do t=${line:0:1} #截取文件类型 #echo $t b=${line##*' '} #截取文件全名 i

这个正则表达式怎么写,求教!!!!!

问题描述 <tbodyid="normalthread_728404"><tr><tdclass="icn"><ahref="http://www.sqee.cn/thread-728404-1-1.html"title="有新回复-新窗口打开"target="_blank"><imgsrc="static/image/common/folde

求教java的正则表达式问题

问题描述 在java中需要用正则表达式处理字符串,从中截取部分值.源字符串格式1:"OSRPath(file):c:\boot.ini-UserEntry:AccountOperators-OrphanedSID(s)Present-UnabletoVerifyUserEntryorACLRule:FULL-[0::2032127]-Thissecuritycheckneedstobeperformedmanually"需要截取c:boot.ini以及AccountOperators对

正则表达式求教

问题描述 有如下的结构(从网上抓取的网页源文件):<h1>2014</h1><table><tr><td><strong>November</strong><ahref="a.html">a</a></td><td></td></tr></table><h1>2013</h1><table&