`
chpn
  • 浏览: 8787 次
  • 来自: ...
社区版块
存档分类
最新评论

Java中实现类似javascript中传入函数正则替换

    博客分类:
  • java
阅读更多
javascript中可以这样做
var str = "abcdefg123hijk567";
var str2 = str.replace( /([a-z]+)(\d+)/g,function( a , $1 , $2, $3 ){
     return $2 + $1; //交换数字和字母的位置
});
console.info( str2 );
// 显示的是: 123abcdefg567hijk


java中可以定义一个TextUtil来实现上述功能,最终可以这样调用
public class TextTest {
	public static void main(String[] args) {
		String str = "abcdefg123hijk567";
		 
		String result = TextUtil.repalce(str, "([a-z]+)(\\d+)", new Function<String, Matcher>() {
			 
			@Override
			public Object apply(String matchedText, Matcher matcher) {
				
				return matcher.group( 2 ) + matcher.group( 1 );
			}
		});
		System.out.println( result );
	}
}


TextUtil
public class TextUtil {



	public static String repalce( String str , Pattern pattern , Function<String ,Matcher  > fun){
		Matcher matcher = pattern.matcher( str );
		String all = null ; 
		StringBuffer sb =new StringBuffer();
		while( matcher.find()){
			all = matcher.group(0); 
			String replace = (String)fun.apply( all , matcher );			
			matcher.appendReplacement(sb, replace==null?"":replace );
		}
		matcher.appendTail(sb); 
		return sb.toString();  
	}
	public static String repalce( String str , String pattern , Function<String ,Matcher  > fun){
		 Pattern p  = Pattern.compile( pattern);
		 return repalce( str , p ,fun);
	 
	}

}


Function
public interface Function<T,K> {
	public Object apply(T t,K k);
}
 

分享到:
评论

相关推荐

    Javascript经典正则表达式

    在JavaScript中,正则表达式主要用于字符串处理,包括但不限于: 1. **表单验证**:比如验证用户输入的邮箱格式是否正确、电话号码是否为纯数字等。 2. **处理DOM模型**:通过正则表达式定位到DOM树中的特定元素。...

    JavaScript正则表达式替换字符串中图片地址(img src)的方法

    在JavaScript中,正则表达式是一种强大的文本处理工具,用于匹配、查找、替换和提取字符串中的模式。在处理HTML字符串时,我们可能需要替换其中的图片地址(img标签的src属性)。本篇文章将深入探讨如何使用...

    javascript 正则替换 replace(regExp, function)用法

    特别是replace()方法中使用RegExp对象作为第一个参数,并传入一个回调函数作为第二个参数的用法,可以实现基于匹配内容的动态替换。 正则表达式是一种特殊的字符串模式,用于匹配一组字符串,常用于搜索、替换、...

    JavaScript正则表达式

    JavaScript正则表达式是一种用于字符串匹配的强大工具,它允许用户对文本内容进行复杂的搜索和替换操作。在JavaScript中创建正则表达式有两种方法:一种是使用正则表达式字面量,另一种是使用RegExp构造函数。 正则...

    javascript 正则表达式触发函数进行高级替换

    在探讨JavaScript中使用正则表达式触发函数进行高级替换的场景时,有几个关键的知识点需要了解。 首先,正则表达式是用于匹配字符串中字符组合的模式,它是由一系列特殊字符和文本字符构成的规则表达式。正则表达式...

    javascript的正则表达式

    本文将通过一个日期格式验证函数来详细介绍正则表达式的使用方法及其在JavaScript中的具体实现。 #### 二、正则表达式基础 正则表达式由一系列字符和特殊符号组成,用于定义查找模式。在JavaScript中,可以通过两...

    JavaScript 替换所有匹配内容及正则替换方法

    在JavaScript中,`replace`方法也可以接受一个正则表达式作为第一个参数,并通过添加`g`标志实现全局替换。例如: ```javascript content.replace(new RegExp(searchValue, 'g'), replaceValue); ``` 然而,创建...

    JavaScript常用判断函数

    在JavaScript编程中,判断函数是非常重要的工具,可以帮助开发者快速地对各种数据类型进行验证和处理。本文将详细介绍几个常用的JavaScript判断函数,包括`DataLength`(计算数据长度)、`IsEmpty`(判断是否为空)...

    javascript中的正则表达式使用详解.docx

    - **source**:正则表达式的字符串表示,根据字面量形式而非传入构造函数中的字符串模式返回。 #### 六、构造函数属性(静态属性) - 这些属性适用于作用域中的所有正则表达式,并且基于所执行的最近一次正则表达式...

    判断一个字串中是否有汉字的正则表达式

    在各种编程语言中,正则表达式都有着广泛的应用,包括但不限于Python、JavaScript、Perl、Java等。 ### 二、判断字符串中是否存在汉字的正则表达式 #### 2.1 汉字的Unicode范围 在Unicode编码中,汉字主要分布在`...

    JavaScript 实现基础 正则表达式

    JavaScript中的正则表达式是一种强大的文本处理工具,用于在字符串中查找、匹配、替换特定模式的文本。它们在网页开发中扮演着至关重要的角色,尤其是在处理用户输入验证、数据提取和格式化等方面。 正则表达式的...

    js 替换功能函数,用正则表达式解决,js的全部替换

    在JavaScript中,字符串替换功能是通过`String.prototype.replace()`函数实现的。这个函数可以接受两个参数,一个是查找的模式(可以是字符串或正则表达式),另一个是替换的字符串。当我们想要替换字符串中的所有...

    javascript字符串替换函数如何一次性全部替换掉

    在JavaScript中,字符串对象提供了一个replace方法,用于实现替换操作。基本的replace方法语法如下: ```javascript str.replace(regexp/substr, newSubStr/replaceAll); ``` 这个方法接收两个参数,第一个参数是...

    正则表达式链接替换函数的技巧

    开发者需要根据实际需求,编写合适的正则表达式,并在脚本或程序中正确实现替换逻辑。 正则表达式的强大在于其灵活性和表达力,但同时也因为其复杂性容易造成错误。因此,在使用正则表达式链接替换函数时,开发者...

    c++正则表达式boost编译好的库和头文件及一个例子

    它支持ECMAScript(JavaScript类似)和Perl风格的正则表达式,并且提供了更多的匹配选项和操作函数。例如,你可以使用Boost.Regex来实现诸如验证输入字符串是否符合特定格式、提取匹配部分、替换匹配内容等功能。 ...

    javascript常用函数集合

    14. **函数式编程**:高阶函数(如`map()`, `filter()`, `reduce()`)和函数组合是JavaScript中实现函数式编程的关键。 15. **错误处理**:`try...catch`结构用于捕获和处理运行时错误,`throw`语句用于抛出自定义...

    js正则 表达式 验证

    在JavaScript中,正则表达式被广泛用于数据验证、字符串搜索与替换等场景。本文将基于给定的代码片段,详细介绍几种常用的正则表达式及其应用场景。 #### 二、正则表达式基础知识 在深入了解具体的验证规则之前,...

    javascript使用正则实现去掉字符串前面的所有0

    2. 使用`replace()`方法,传入正则表达式和要替换为的模式(通常是捕获组中的非零数字部分)。 3. 执行替换操作,并获取处理后的字符串。 这种方法不仅适用于简单的整数,还适用于更复杂的场景,只要确保正则表达式...

    网址正则表达式匹配方法

    本文将深入探讨网址正则表达式匹配方法,尤其关注如何在JavaScript中实现这一功能。 ### 网址正则表达式匹配的重要性 网址(URL)是互联网上资源的位置标识符。在网页表单、链接检查、数据清洗等多种场景下,正确...

    前端JavaScript彻底弄懂函数柯里化curry.docx

    在编程领域,尤其是JavaScript中,柯里化是一种将接受多个参数的函数转换为一系列只接受一个参数的函数的技术。其核心思想是将一个多参数函数分解为一系列单一参数的函数,每个函数返回一个新的函数,继续等待接收下...

Global site tag (gtag.js) - Google Analytics