栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

正则提取${name} 中的name

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

正则提取${name} 中的name

由于某些地方要用${变量名}来在一段文字中代表变量,然后在具体使用的时候替换变量。 例如短信发送的短信模板。

1了解正则

正则表达式(Regular Expression)是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为"元字符")。

正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。

首先你的对正则有一定的了解。

(?=pattern)正向肯定预查(look ahead positive assert),在任何匹配pattern的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如,“Windows(?=95|98|NT|2000)“能匹配"Windows2000"中的"Windows”,但不能匹配"Windows3.1"中的"Windows”。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始。
(?<=pattern)反向(look behind)肯定预查,与正向肯定预查类似,只是方向相反。例如,"`(?<=95
2开始使用
(?<=${)(.*?)(?=})

这就是查找的正则

(?<=${)
这是反向(look behind)肯定预查  意思就是匹配${ 开头的字符串
(.*?)
这是匹配所有字符串 且最小匹配
(?=})
正向肯定预查

java 代码

  public static void main(String[] args) {
        String reStr = "(?<=\$\{)(.*?)(?=\})";
        String findText = "你好,尊敬的${name}客户,你预约的《${course}》即将开课。";
        //这里调用 糊涂工具库
        ArrayList all = ReUtil.findAll(reStr, findText, 0, new ArrayList<>());
        System.out.println("查询到的变量:" + all.toString());
        String name = "张三";
        String course = "张三来学java";
        String res =  findText.replaceFirst("\$\{name}", name );
        res = res.replaceFirst("\$\{course}", course );
        System.out.println(res);
    }

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/827163.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号