java正则表达式解析短信模板

/**
 *
 */
package testJava.java;

import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * @author xxx.sjtu
 * @function
 * @date 2016年4月12日
 * @version
 */
public class ReplaceTest {

    /**
     * @param args
     */
    public static void main(String[] args) {
        String tempalteContent = "您的“$CarBrand$”(车牌$CarPlateNum$)已经完成租用(订单号:$orderNo$)。本次租金收益$RentIncome$元,$ServiceExpense$$ServiceExpenseProxy$$You2RenterAdjust$$Renter2YouAdjust$$HardwareDeposit$$ownerTransDebt$$TotalIncome$在1个工作日后结算至您设置的银行卡中。您可在App车主收益页面查看详情";
        Map contentParamMap = new HashMap();
        contentParamMap.put("CarBrand", "奥迪");
        contentParamMap.put("CarPlateNum", "沪A0001");
        contentParamMap.put("orderNo", "1245221158");
        contentParamMap.put("RentIncome", "2000");
        contentParamMap.put("ServiceExpense", "平台服务费100元,");

        Scanner sc = new Scanner(tempalteContent);
        StringBuffer buf = new StringBuffer();
        try{
            Pattern p = Pattern.compile("[$]([^$]*?)[$]");
            while (sc.hasNext()) {
                System.out.println(sc.toString());
                Matcher m = p.matcher(sc.nextLine());
                while (m.find()) { //查找并替换参数
                    System.out.println(m.group(1));
                    //从map中根据key获取值
                    m.appendReplacement(buf, contentParamMap.get(m.group(1)) != null ? contentParamMap.get(m.group(1)).toString() : "");
                }
                m.appendTail(buf);
            }
//            if(StringUtils.isEmpty(buf.toString())){
//                buf.append(tempalteContent);
//            }
        }catch(Exception e){
//            logger.error("替换短信模板内容报错!",e);
            e.printStackTrace();
        }finally{
            sc.close();
        }
        System.out.println("buf=" + buf);

    }

}
时间: 2025-01-23 20:02:44

java正则表达式解析短信模板的相关文章

JAVA发送手机短信

<p><span>JAVA发送手机短信,流传有几种方法:(1)使用webservice接口发送手机短信,这个可以使用sina提供的webservice进行发送,但是需要进行注册;(2)使用短信mao的方式进行短信的发送,这种方式应该是比较的常用,前提是需要购买硬件设备,呵呵;</span></p> import org.apache.commons.httpclient.Header; import org.apache.commons.httpclient

JavaScript实现自定义短信模板

自定义短信模板,要求:可以插入关键字,当然是可以在点击到文本域中的任意位置,关键字以中括号包裹的形式出现[关键字],删除关键字要整个关键都删掉,而不是自己全删除. 详细在简书中 http://www.jianshu.com/p/dbc4ac17ba4c 也可以直接上github拉代码示例,也有详细注释 https://github.com/Stevenzwzhai/plugs/tree/master/%E8%87%AA%E5%AE%9A%E4%B9%89%E6%A8%A1%E6%9D%BF-te

事务:从短信平台插入短信模板与从运营平台插入短信模板

step1:运营平台插入一条短信模板 step2:短信平台插入一条短信模板 注意:分别向两个系统中插入短信模板的记录是相同的. 不管是先进行step1然后通知step2,还是先进行step2再进行step1,都有可能出现某一个step失败(如果都失败或者都成功就数据一致了): 当某一个step失败后,这两个系统某一个中有一条该短信模板的记录,而另一个则没有:两个系统之间的数据就无法保证一致性了,有点分布式事务的感觉. 就算在运营平台添加模板的方法进行事务管理(如使用@transactional注

java阿里云短信发送配置

package cn.jeeweb.modules.found.sms; import com.aliyuncs.DefaultAcsClient;import com.aliyuncs.IAcsClient;import com.aliyuncs.dysmsapi.model.v20170525.SendSmsRequest;import com.aliyuncs.dysmsapi.model.v20170525.SendSmsResponse;import com.aliyuncs.exce

JAVA实现第三方短信发送

JAVA实现第三方短信发送 要想使代码生效需要注册: http://sms.webchinese.cn/default.shtmlhttp://sms.webchinese.cn/default.shtml 在muven项目里面导入jar包 <dependencies> <dependency> <groupId>commons-codec</groupId> <artifactId>commons-codec</artifactId>

Java通过SMS短信平台实现发短信功能

在项目中使用过发短信的功能,但那个由于公司内部的限制很麻烦,今天在网上找到一个简单的,闲来无事就把它记录如下: 本程序是通过使用中国网建提供的SMS短信平台实现的(该平台目前为注册用户提供5条免费短信,3条免费彩信,这足够用于我们测试用了.在使用前需要注册,注册地址为http://sms.webchinese.cn/reg.shtml),下面是程序源码: /** * @Author dengsilinming * @Date 2012-9-18 * */ package com.dengsili

Java中实现短信发送

最近跟着做公司的项目偶然接触到的,顺势把这个给记录下来,给自己梳理一下. 采用引入第三方工具的方式,网上查了半天,发现简单的实现方式便是注册一个中国网建的账号,新建账号的时候会附带赠几条免费短信,彩信 ,之后想要在使用就得花钱了.简单的操作流程如下. 网建的链接如下: http://www.smschinese.cn/api.shtml 手机号注册登陆成功之后页面如下: 如上页面可以看到我们之前发送的短息信息以及相关的剩余短信条数. 我们可以参考它那边提供的API接口文档,接入jar包,利用自己

Java实现发送短信验证验证码功能

这几天老大让我弄一个发送短信验证码的功能,使用的是信易通的短信平台接口,然后在Java中使用HttpClient模拟POST请求或者GET请求(看短信平台要求,一般的情况下都是POST请求),调用短信平台提供的接口(遵循短信平台的接口规范即可).具体看代码: 使用HttpClient的时候需要在项目中引入: commons-httpclient-3.1.jar 这个jar包, 项目结构: 1.创建一个Http的模拟请求工具类,然后写一个POST方法或者GET方法 /** * 文件说明 * @De

在JAVA中通过短信的形式发送到手机号码上

package com.fetion.test; import java.io.BufferedReader;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.ut