A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© cat73 黑马帝   /  2015-4-6 21:31  /  2534 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

10黑马币
本帖最后由 cat73 于 2015-4-6 22:02 编辑

一直以来,有一个关于正则表达式的问题都在困扰着我,我把它归结为同时匹配多个字符的问题,不过我本人解释不大清楚,干脆写个例子吧:
  1. http://www.12345.com/
  2. http://www.67890.cn/
  3. https://www.baidu.com/
  4. https://cat73.sinaapp.com/
  5. http://catblog.sinaapp.com/
  6. http://mcpc.sinaapp.com/
  7. http://mg1024.sinaapp.com/
  8. http://blog.cat73.org/
  9. http://game.qq.com/
  10. https://www.google.org/
  11. http://www.github.io/
  12. http://www.sina.com.cn/
  13. http://www.12306.cn/
复制代码
以上是一些例子域名
我希望写一段正则表达式,匹配除了*.sinaapp.com之外的域名
如下图,我自己写了一段正则,但是无法做到过滤掉*.sinaapp.com
就是说,这张图里的4 5 6 7号结果都是多余的,不应该出现

说更详细一些就是,仅靠正则过滤掉子匹配1为sinaapp且子匹配2为com的结果
如果实在办不到,只过滤子匹配1也可以

要求:
写一段正则表达式,可以匹配到除了*.sinaapp.com之外的域名,不得插入程序代码,仅使用正则来匹配
如果实在做不到,也可以只处理sinaapp而不处理后面的com,即匹配*.sinaapp.*之外的域名

最佳答案

查看完整内容

String regEx="^(?!.*(\\.sinaapp\\.com)).*$"; 帮你找了快一下午了,是不是该吧币给我了。-_-

7 个回复

倒序浏览
String regEx="^(?!.*(\\.sinaapp\\.com)).*$";
帮你找了快一下午了,是不是该吧币给我了。-_-

点评

我要的是正则表达式 不是Java代码... 不过还是解决了我的问题 感谢- - 最终的正则:"^https?://(?!.*(\.sinaapp\.com)).*$"  发表于 2015-4-10 04:33
回复 使用道具 举报
楼主,虽然不知道你要做什么用,但应该可以先保存所有域名,接着只匹配*.sinaapp.com的域名,从而把这些域名去除,然后剩下的不就是你所需要的吗?
回复 使用道具 举报
你可以去试着写一个不以.sinaapp.com/结尾的表达式
回复 使用道具 举报
pvbj0314 发表于 2015-4-7 14:53
楼主,虽然不知道你要做什么用,但应该可以先保存所有域名,接着只匹配*.sinaapp.com的域名,从而把这些域 ...

我当然知道这种办法 但是我想要的是 直接用表达式来实现匹配出来 而不是匹配出来之后再用代码去过滤
回复 使用道具 举报
major2015 发表于 2015-4-6 21:31
String regEx="^(?!.*(\\.sinaapp\\.com)).*$";
帮你找了快一下午了,是不是该吧币给我了。-_- ...

谢了。只会在java中用正则,,,,顺便问问你那是什么软件啊?

点评

彗星小助手  发表于 2015-4-10 20:59
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马