java正则表达式参数替换,正则表达式替换(String对象的replace)方法笔记

String对象的replace方法

参数 relpace( [ reg | string ], [ string | function ] )

第一个参数表示执行匹配的正则表达式,也可以传递字符串

与search和match不同,replace方法不会把字符串转化成正则对象,而是以字符串直接量的文本模式进行匹配。

第二个参数可以是替换的文本或是生成替换文本的函数,把函数的 返回值 作为替换文本

特殊符号 $

$1 $2 ...$99:表示与正则表达式中的第1-99个子表达式相匹配的文本

var a = 'javascript';

var b = a.replace(/(java)(script)/,"$2$1");

console.log(b); // "srciptjava"

$& :与正则表达式相匹配的子字符串

var a = 'javascript';

var b = a.replace(/.*/, "$&$&");

console.log(b); // "javasrciptjavasrcipt"

$`(反单引号):位于匹配子字符串左侧的文本

var a = 'javascript';

var b = a.replace(/script/, "$`");

console.log(b); // "javajava"

$'(单引号):位于匹配子字符串右侧的文本

var a = 'javascript';

var b = a.replace(/java/, "$'");

console.log(b); // "scriptscript"

$$: 表示$符号

第二个参数为函数

function($,$1,$2, …… ,n,string)

第1个参数表示每次匹配的文本

第2个参数表示本次匹配的第 1 个子表达式所匹配的文本

第3个参数表示本次匹配的第 2 个子表达式所匹配的文本

………………………………………………

倒数第二个参数表示匹配文本的下标位置

最后一个参数表示字符串自身

例1

var a = 'script language = "javascript"';

var f = function($1){ //$1也可以用x等其他形参代替

return $1.slice(0,1).toUpperCase() + $1.slice(1);

};

var b = a.replace(/(\b\w+\b)/g, f);

console.log(b);

例2

var s = "张三56分,李四74分,王五92分,赵柳84分";

var a =s.match(/\d+/g),sum =0;

for( var i= 0 ; i

sum += parseFloat(a[i]);

};

var avg = sum / a.length;

function f(){

var n = parseFloat(arguments[1]);

return n + "分" + " ( " + (( n > avg ) ? ( "超出平均分" + ( n - avg ) ) :( "低于平均分" + ( avg - n ) )) + "分 ) ";

}

var s1 = s.replace( /(\d+)分/g, f );

console.log(s1);

例3

var s = 'script language = "javaScript" type= " text / javaScript"';

var f = function($_all,$1,$2,$3,n,s){

return $1.toUpperCase()+$2+n;

}

var a = s.replace( /\b(\w)(\w)(\w*)\b/g, f );

console.log(a); //Script Language = "JavaScript" Type =" Text /JavaScript"

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java正则表达式是一种用于匹配、查找和替换文本的强大工具。它可以用于验证输入是否符合特定的格式、从文本中提取信息、以及将文本中的某些内容替换成其他内容。 下面是一些示例代码,说明如何使用Java正则表达式进行匹配、替换和查找操作: 1. 匹配操作: ```java String input = "This is a test string."; String pattern = "test"; // 创建 Pattern 对象 Pattern p = Pattern.compile(pattern); // 执行匹配操作 Matcher m = p.matcher(input); if (m.find()) { System.out.println("Found match at index " + m.start() + " to " + m.end()); } else { System.out.println("No match found."); } ``` 这段代码首先定义了一个输入字符串和一个正则表达式模式,然后创建了一个 Pattern 对象,并使用该对象对输入字符串进行匹配操作。如果找到了匹配项,则输出其开始和结束位置;否则,输出未找到匹配项的提示信息。 2. 替换操作: ```java String input = "This is a test string."; String pattern = "test"; String replacement = "example"; // 执行替换操作 String output = input.replaceAll(pattern, replacement); System.out.println("Output string: " + output); ``` 这段代码使用了 String 类的 replaceAll() 方法,将输入字符串中所有匹配正则表达式模式的部分替换成指定的字符串。替换后的字符串将被输出到控制台。 3. 查找操作: ```java String input = "This is a test string."; String pattern = "\\w+"; // 创建 Pattern 对象 Pattern p = Pattern.compile(pattern); // 执行查找操作 Matcher m = p.matcher(input); while (m.find()) { System.out.println("Found match: " + m.group()); } ``` 这段代码使用了一个正则表达式模式,该模式匹配一个或多个字母、数字或下划线字符。然后,它创建了一个 Pattern 对象,并使用该对象对输入字符串进行查找操作。如果找到了匹配项,则输出其内容;否则,继续查找下一个匹配项。这里使用了 Matcher 类的 find() 方法来查找所有匹配项。 以上是Java正则表达式的一些基本用法,可以根据具体需求进行调整和扩展。通过学习Java正则表达式,我们可以更轻松地处理文本数据,并快速准确地完成各种文本处理任务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值