[深坑]关于groovy正则表达式中的限位符 `^` 和 `$`

2024-01-02 06:08

本文主要是介绍[深坑]关于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正则表达式中的限位符 `^` 和 `$`的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/561537

相关文章

JavaScript正则表达式六大利器:`test`、`exec`、`match`、`matchAll`、`search`与`replace`详解及对比

在JavaScript中,正则表达式(Regular Expression)是一种用于文本搜索、替换、匹配和验证的强大工具。本文将深入解析与正则表达式相关的几个主要执行方法:test、exec、match、matchAll、search和replace,并对它们进行对比,帮助开发者更好地理解这些方法的使用场景和差异。 正则表达式基础 在深入解析方法之前,先简要回顾一下正则表达式的基础知识。正则

匹配电子邮件地址的正则表达式

这个正则表达式 QRegularExpression regex(R"((\w+)(\.|_)?(\w+)@(\w+)(\.(\w+))+))"); 用于匹配电子邮件地址的格式。下面是对这个正则表达式的逐步解析和解释: 1. QRegularExpression 构造函数 QRegularExpression regex(R"((\w+)(\.|_)?(\w*)@(\w+)(\.(\w+))+

notepad++ 正则表达式多条件查找替换

基础语法参考: https://www.cnblogs.com/winstonet/p/10635043.html https://www.linuxidc.com/Linux/2019-05/158701.htm   通常情况下我们查找的内容和要被替换掉的内容是一样的,我们只需要使用正则表达式精确框定查找内容,替换直接输入要替换的内容即可。 但有时会比较复杂,查找的内容,只需要替换其中

js正则表达式test方法的问题

今天在网上碰到一个帖子,写了一个关于Regex的奇怪现象,(文章来源http://www.php100.com/html/webkaifa/javascript/2007/0109/1866.html) 代码如下 <script type="text/javascript"><!--var re = /^\d+(?:\.\d)?$/ig; alert(re.test('112.3'

Java利用正则表达式获取指定两个字符串之间的内容

package com.starit.analyse.util;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.List;import java.util.regex.Matcher;import java.util.regex.Pattern;public class DealSt

SparkRDD转DataSet/DataFrame的一个深坑

大数据技术与架构 点击右侧关注,大数据开发领域最强公众号! 暴走大数据 点击右侧关注,暴走大数据! By  大数据技术与架构 场景描述:本文是根据读者反馈的一个问题总结而成的。 关键词:Saprk RDD 原需求:希望在map函数中将每一

AS3中正则表达式中如何表达“或”

var reg:RegExp=/\r|\n|\t/g;                 var msg:String="123\rabc\n\tabc\ta\123";                 msg=msg.replace(reg,"");                 trace(msg);

as3 正则表达式(比较齐全)

正则表达式是AS3比较重要的一个部分,具体内容如下:   //正则表达式有四个部分。1元子符。2元序列。3标志。4数量表达符。 //下面是元字符部分 //现在我们来看看元字符: ^ $ \ . * + ? ( ) [ ] { } | //^匹配字符串的开头 varpattern:RegExp=/^小虫/; var str:String="小虫是好人"; trace(str, " is

as3 常用正则表达式(来自天地会论坛之七夜)

正则表达式是一种通用的标准,大部分计算机语言都支持正则表达式,包括as3,这里转摘出了一些常用的正则表达式语句,大家用到的时候就不用自己写了。 红色字体为常用正则: 下面这个类是我自己写的一个示例,想必大家做客户端,用户登录信息肯定会用的正则表达式。 package com.qiye.regexp { /**   * 常用正则表达式。   * @author Qiy

认识正则表达式

为什么要学习正则表达式 因为爬虫需要!!! 一般来说爬虫需要四个主要步骤: 明确目标 (要知道你准备在哪个范围或者网站去搜索)爬 (将所有的网站的内容全部爬下来)取 (去掉对我们没用处的数据)处理数据(按照我们想要的方式存储和使用) 一般情况我们拉取的网页数据庞大并且很混乱,其中很大一部分东西是我们不关心的,因此我们需要将其按要求过滤和匹配出来。 那么对于文本的过滤和指定规则的匹配,最