首页 > 其他分享 >使用APACHE ORO 实现正则替换

使用APACHE ORO 实现正则替换

时间:2023-05-10 14:33:11浏览次数:23  
标签:String oro text ORO 正则 org APACHE import apache


JAVA中的正则实现一直是一个混乱的情况,JDK提供的正则功能由于版本差异而存在向下不兼容的问题.

Apache的ORO作为外部LIB,多少可以缓解JVM版本差异.但由于JAVA开源的混乱局面,想做到"一次编写随处运行"还需要JAVA世界付出相当的努力.

以下为使用ORO实现正则替换的示例

 

import org.apache.oro.text.regex.Perl5Matcher;
import org.apache.oro.text.regex.PatternMatcher;
import org.apache.oro.text.regex.PatternCompiler;
import org.apache.oro.text.regex.Perl5Compiler;
import org.apache.oro.text.regex.Perl5Substitution;
import org.apache.oro.text.regex.Util;
import org.apache.oro.text.regex.Pattern; 
 
/**
    * 在字符串中替换字符串。
    * @param str 原始字符串
    * @param reg  正则式
    * @param str2 替换成为字符串 * @param num 替换次数,为0则replaceAll

    */  public static String replace(String str,String reg,String str2,int num) {
 String result = str;
 if(num==0){num= Util.SUBSTITUTE_ALL;}
 try {
    String content = str;
    String ps1 = reg;    PatternCompiler orocom = new Perl5Compiler();
    Pattern pattern1 = orocom.compile(ps1);
    PatternMatcher matcher = new Perl5Matcher();
    result = Util.substitute(matcher, pattern1, new Perl5Substitution(str2),
                             content, num);  }
  catch (Exception e) {
    System.out.println(e);
  }
  return result;
}

 




标签:String,oro,text,ORO,正则,org,APACHE,import,apache
From: https://blog.51cto.com/u_873039/6261365

相关文章

  • 正则表达式语法及其在python的应用
    一、语法参考:https://www.liujiangblog.com/course/python/731、普通字符:正则表达式中的普通字符在进行匹配的时候只会匹配与自身相同的一个字符。2、元字符:.小数点;|逻辑或;[]匹配字符集中的一个字符;[^]对字符集求反;-定义字符集中的字符区间;\对紧跟其后的一个字符进行转义;()对表......
  • 正则表达式详解
    一、正则表达式概述正则表达式是一组由字母和符号组成的特殊文本,它可以用来从文本中找出满足你想要的格式的句子。通俗的讲就是按照某种规则去匹配符合条件的字符串一个正则表达式是一种从左到右匹配主体字符串的模式。“Regularexpression”这个词比较拗口,我们常使用缩写......
  • js基础---date的格式化与exec()正则表达式
    exec():获取字符串中符合正则表达式的内容。正则表达式中的匹配模式:i代表忽略大小写,g代表全局匹配......
  • 8. 正则表达式
    1.findall语法findall("正则表达式","要匹配的字符串")把匹配的内容返回到列表匹配数字\dimportrelist=re.findall("\d","123331231%%%@@@你好")print(list)匹配非数字\Dimportrelist=re.findall("\D","123331231%%%@@@你好"......
  • JavaScript 正则表达式
    正则表达式RegularExpression在编程语言中,正则表达式用于匹配指定的字符串。如果想要在字符串Thedogchasedthecat中匹配到the这个单词,可以使用如下正则表达式:/the/。注意,正则表达式中不需要引号。使用测试方法TestMethodJavaScript中有多种使用正则表达式的方法......
  • 最高等级!Apache RocketMQ 入选可信开源项目星云象限领导型象限
    2023 年4月21日,由中国信通院主办的OSCAR开源生态建设论坛在北京成功召开。本次论坛,中国信通院发布了可信开源项目星云象限。星云象限依托于可信开源项目指数中流行度、参与度、响应度、安全能力和法律合规五个指标,从项目可持续性与可信性两个维度,将可信开源共同体项目分为......
  • 正则表达式和String类有关方法
    正则表达式介绍正则表达式,又被称为规则表达式(RegularExpression,在代码中常简写为regex、regexp或RE),包括普通字符(例如:a到z之间的字符等)和特殊字符(称为元字符)。正则表达式使用单个字符串来描述、匹配一系列匹配某个语法规则的字符串,被广泛运用于于Scala、PHP、C#、Java、C+......
  • 五种开源协议的比较(BSD,Apache,GPL,LGPL,MIT)
    当Adobe、Microsoft、Sun等一系列巨头开始表现出对”开源”的青睐时,”开源”的时代即将到来!现今存在的开源协议很多,而经过OpenSourceInitiative组织通过批准的开源协议目前有58种。我们在常见的开源协议如BSD,GPL,LGPL,MIT等都是OSI批准的协议。如果要开源自己的代码,最好也是选......
  • R语言随机波动模型SV:马尔可夫蒙特卡罗法MCMC、正则化广义矩估计和准最大似然估计上证
    全文链接:http://tecdat.cn/?p=31162最近我们被客户要求撰写关于SV模型的研究报告,包括一些图形和统计输出本文做SV模型,选取马尔可夫蒙特卡罗法(MCMC)、正则化广义矩估计法和准最大似然估计法估计。模拟SV模型的估计方法:sim<-svsim(1000,mu=-9,phi=0.97,sigma=0.15)pr......
  • 正则表达式
    用正则表达式查找文本模式importrephoneNumRegex=re.compile(r'\d\d\d-\d\d\d\-\d\d\d\d')mo=phoneNumRegex.search('Mynumberis415-555-4242.')print(mo.group())用importre导入正则表达式模块;用re.compile()函数创建一个Regex对象;向Regex对象的search()方......