正则表达式替换域名

今天快下班的时候,有一个替换域名的需求,先附上代码

/*** 外部渠道替换图片域名*/public static String replaceDomainName(String text) {String replaceAll = text.replaceAll("((http://)|(https://))?([a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]{2,6}(/)", "你要替换的");return replaceAll;}

域名的规定(这个不是很懂):

域名不能超过63位;
域名中的字母只能为字母(a-z)、数字(0-9)、-(短横杆);
-(短横杆)不能连着出现两次;

正则表达式解释一下的话

首先 ((http://)|(https://))? 部分,
((http://)表示http请求,
(https://))表示https请求,
中间用|或者符号分隔,表两者其一,
最后一个?表示前面的子表达式出现0次或者1次,因为可以有的域名没带http或者https前缀。
中间([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+部分
先看第一个园括号里[a-zA-Z0-9],表示a-z所有小写字母,A-Z所有大写字母,0-9所有数字,
再第二个园括号里,[a-zA-Z0-9\-]{0,61},[a-zA-Z0-9\-]同上,最后一个\\-,第一个\表转义第二个\,\\\-就表示匹配-,因为-是特殊字符,{0,61}表示前面子表达式的出现次数,0-61次,
第二个[a-zA-Z0-9]?就同上了,最后一个?表示前面的子表达式出现0次或者1次。
中间部分最后一个\\.,同上\\.表示.,因为.是特使字符,表示除换行符(\n、\r)之外的任何单个字符
整个的意思表达,就是一个字母或者数字开头,然后中间可以有很多或者没有字母,数字,或者-,然后以.结尾
最后部分+[a-zA-Z]{2,6}(/)
+表示前面的子表达式一次或多次,意思是我的中间部分可以出现多次,
[a-zA-Z]{2,6}是表示域名的后缀了,比如cn,com,
(/)表示分隔符,这个符号之前的一串就是一整个域名了。

Java正则表达式替换域名相关推荐

  1. java正则表达式替换特殊字符_使用正则表达式替换报表名称中的特殊字符(推荐)...

    正则表达式,又称规则表达式.(英语:Regular Expression,在代码中常简写为regex.regexp或RE),计算机科学的一个概念.正则表通常被用来检索.替换那些符合某个模式(规则)的文 ...

  2. java 正则表达式 替换字符串img标签的路径_python面试题汇总第06期-正则表达式(内附7题及答案)...

    1.python正则表达式中匹配(match)和查找(search)的区别 答:正则表达式中match和search的方法比较相似 相同点:都是在一个字符串s中寻找pat子字符串,如果能找到,就返回一 ...

  3. java 正则表达式 替换字符串img标签的路径_正则表达式和有限自动机的应用

    1. 为什么谈有限自动机时要谈正则表达式?原因是:正则表达式所匹配的所有字符串所构成的语言可以用有限自动机识别.根本原因是:正则集(正则表达式所匹配的所有字符串集合)是由右线性文法(3型文法)所产生的 ...

  4. java正则表达式 替换空格_Java正则表达式替换移除空行和多余的空格

    这几天重拾Java写代码,须要操做文本文件中的内容.正则表达式 最终,要把内容里的空行和多余的连续空格移除,使用String里的replace或者replaceAll,试了不少次都没有成功.spa 最 ...

  5. java 正则表达式替换多个全角空格为一个半角空格_去掉字符串两端的全角空格和半角空格(含源代码)...

    昨天,遇到了一个技术问题.本来我在程序中用的trim()方法来处理从JSP页面传来的值,后来在测试时,发现当我输入的是全角空格时,trim()方法失效. 需求是这样的,只是去掉字符串两端的空格(不论是 ...

  6. java正则表达式 替换标签内容_使用Java正则表达式替换HTML标签

    一.实现目标 实现多个个HTML页的合并预览,需要如下处理 1)去掉meta标签 2)替换input标签,只保留value值(因为是预览,不保留输入框) 3)移除隐藏的input标签,即type=&q ...

  7. java正则表达式替换指定字符串_笔记_正则表达式替换字符串中特定范围内的字符。...

    功能:从字符串中找到所有<>之间的单引号,转换成双引号. 如: 转换成: 代码: package test_java; import java.util.regex.Matcher; im ...

  8. 帮你快速拿Offer!java正则表达式替换指定字符串

    架构筑基 大家都知道,性能一直是让程序员比较头疼的问题.当系统架构变得复杂而庞大之后,性能方面就会下降,如果想成为一名优秀的架构师,性能优化就是你必须思考的问题. 所以性能优化专题从JVM底层原理到内 ...

  9. java 正则表达式 替换括号,Java正则表达式:如何替换方括号内的所有字符?

    How do I able to replace: ((90+1)%(100-4)) + ((90+1)%(100-4/(6-4))) - (var1%(var2%var3(var4-var5))) ...

最新文章

  1. 曙光与包头签署云计算中心战略合作协议
  2. [Google Guava] 3-缓存
  3. java查看sql视图_SQL视图与MS Access查询
  4. xgboost分类器直接调用验证集的评估结果
  5. jmeter所有版本下载地址分享
  6. 【视频教程】JeeWx 微信开发入门视频
  7. BZOJ2460: [BeiJing2011]元素(线性基+贪心)
  8. C# ref,out
  9. 【HDU 6299】Balanced Sequence
  10. iOS蓝牙连接打印机,打印小票
  11. 中国芯绝配:普华推全新龙芯3A3000操作系统
  12. VC++的Unicode编程
  13. win10虚拟桌面快捷键
  14. Access Violation(非法访问)错误的解决方法
  15. primeNG__datatable
  16. python弹出框多一个空白框_python – 自定义/删除Django选择框空白选项
  17. 你是不是程序员菜鸡,一句话就能证明!
  18. 【机器学习基础】支持向量回归
  19. Linux 浏览器下安装 Flash
  20. 基于springboot的校园二手交易系统-JAVA【毕业设计、论文、源码、开题报告】

热门文章

  1. YOLOv7网络结构图
  2. c语言课程设计作业个人所得税计算,C Prime Plus 5th Edition 练习-个人所得税计算
  3. 按头安利 好看又实用的家具su模型素材看这里
  4. 【rotors】多旋翼无人机仿真(三)——SE3控制
  5. everthing 下载
  6. 解决vue打包后去掉console
  7. 列举最新的关键词算法的优点缺点
  8. JVM成神之路(十一) -- JVM常用命令解析
  9. 第七章 全球区块链投融资分析
  10. 如何成为一名合格的前端开发者?