本文主要是介绍[深坑]关于groovy正则表达式中的限位符 `^` 和 `$`,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
问题提出
最近在工作中需要自己写正则表达式,而且是用 groovy,本以为 groovy 是沿用了 java.util.regex 包,只要 java 中运行没问题就可以,结果问题就出现了。
java 中程序如下:
import java.util.regex.Matcher;
import java.util.regex.Pattern;/*** Created by syp on 17/4/26.*/
public class zhengze {public static void main(String[] args){
// Pattern pattern = Pattern.compile("\\w+");
// Matcher matcher = pattern.matcher("asdasd");
// System.out.println(matcher.find());System.out.print("1+2".replaceAll("^[\\d\\+]+$","sss"));}
}
运行出来结果没问题。
换成 groovy 中的程序如下:
System.out.print("1+2".replaceAll("^[\\d\\+]+$","sss"));
报错信息如下:
org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
/usercode/file.g: 2: illegal string body character after dollar sign;solution: either escape a literal dollar sign "\$5" or bracket the value expression "${5}" @ line 2, column 34.System.out.print("1+2".replaceAll("^[\\d\\+]+$","sss"));^1 error
解决方法
将正则表达式中的$
换成\$
,程序如下:
System.out.print("1+2".replaceAll("^[\\d\\+]+\$","sss"));
疑问
为啥教程上都是说^
和$
,而实际中对$
需要转义呢?而对^
不需要?
求大神解答。
这篇关于[深坑]关于groovy正则表达式中的限位符 `^` 和 `$`的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!