黑马程序员技术交流社区
标题:
再次请教正则表达式 问题,
[打印本页]
作者:
郑枫
时间:
2012-9-5 10:46
标题:
再次请教正则表达式 问题,
现在问题是这样的, 通过 String mailreg = "[h][t][t][p](.)+[\\.][g][i][f]"
这样能获得 首位是 http 结尾是.gif的UTL
但是问题又来了。这样获取到很多没用的GIF。
通过观察 发现 那些没用的GIF是这样形式的。
http:\\......... j_0000.gif 这样的,点前面是j_数字 数字 数字 数字 连续四个数字,
现在我的想法是把这种的去掉,
我查API 看到 \D 是非数字, 这样我又定义了一下
String mailreg1 = "[h][t][t][p](.)+[\\D][\\D][\\D][\\D][\\.][g][i][f]";
这样吧,定义成点前面的四位 任意以为都不能为数字
怎样才能定义成四位不能全是数字呢?
还有如何定义 _ 呢?
或者非 _
作者:
佟亚鹏
时间:
2012-9-5 12:47
你可以换个思路,让它经过两次过滤,这样实现起来比较简单,第一个就是把你需要的gif形式的过滤下来,然后在过滤经过第一次过滤筛选下来的url,把你不想要的格式定义出正则表达式,然后把不符合要求的过滤掉,这样经过两次过滤剩下的就是你想要的url了,把这两个正则表达式编译好,过滤的还是很快的。
作者:
佟亚鹏
时间:
2012-9-5 12:49
_可以直接去 非_可以使用^_ ^为取反的意思,推荐你看看这个帖子
http://www.cnblogs.com/dragon/archive/2006/05/08/394078.html
希望采纳啊 分少的可怜啊
作者:
AngieFans85
时间:
2012-9-5 13:07
"怎样才能定义成四位不能全是数字呢?"
// 把格式固定为http:\\的形式
String regx = "http:\\\\\\\\.+\\D{4}\\.gif";
// 不固定为http:\\的形式
String regx = "http.+\\D{4}\\.gif";
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2