php、js、java的正则替换文本方式制作模板内容输出
2013-12-10 12:15
615 查看
在制作模板内容输出时,很经常会使用<%=%>之类的占位符,用正则的方式很方便替换这个内容,工作中只接触到java、php、js,三种语言的简单的实现方式:
java版
php版
js版
运行结果输出:
2013-01-17, Hello penngo
java版
import java.util.HashMap; import java.util.Map; import java.util.regex.Matcher; import java.util.regex.Pattern; public class TestRex { public static void main(String[] args) { Map<String, String> map = new HashMap<String, String>(); map.put("name", "penngo"); map.put("date", "2013-01-17"); Pattern p = Pattern.compile("<%=(\\w+?)%>"); String str = "<%=date%>, Hello <%=name%>"; Matcher m = p.matcher(str); StringBuffer sb = new StringBuffer(); boolean result = m.find(); while (result) { String key = m.group(1); String value = map.get(key); m.appendReplacement(sb, value); result = m.find(); } m.appendTail(sb); System.out.println(sb.toString()); } }
php版
<?php $data = array('name'=>'penngo', 'date'=>'2013-01-17'); function replaceStr($key, $data){ return $data[$key]; } $str = '<%=date%>, Hello <%=name%>'; $str = preg_replace("/<%=(\w+?)%>/ise", "replaceStr('\\1', \$data)", $str); echo $str; ?>
js版
<script type="text/javascript"> var date = {'name':'penngo', 'date':'2013-01-17'}; var str = '<%=date%>, Hello <%=name%>'; str = str.replace(/<%=(\w+?)%>/g, function($0, $1){ var value = date[$1]; return value; }); document.write(str); </script>
运行结果输出:
2013-01-17, Hello penngo
相关文章推荐
- java正则表达式来替换文本中匹配正则的内容
- 直接修改class文件内容即使是文本会导致App异常,正确方式是修改java再用生成的class替换掉原有的class
- java利用IO流将内容输出到文本
- js提交文本内容,无法提交到服务器问题解决和js替换字符串问题
- java替换文本中所有的正则符号 Java问题通用解决代码
- Java读取文件内容并输出的最简单的方式之一(只需三行代码)
- java 富文本编辑内容去除格式 正则表达式
- PHP 正则表达式替换一部分内容
- php获取超链接文本内容的正则表达式(五种方法)
- java采用压缩解压缩方式修改word中内容或替换标签
- 正则匹配新闻内容案例,JS和PHP
- JS正则替换掉小括号及内容
- PHP用正则批量替换Img中src内容,用正则表达式获取图片路径实现缩略图功能
- JAVA正则表达式 Pattern和Matcher,用正则替换对应的内容。
- java/poi读取word,并替换word中的文本内容,向word中插入图片的操作
- JS正则替换掉小括号及内容
- PHP用正则批量替换Img中src内容,用正则表达式获取图片路径实现缩略图功能
- Java查找替换文本文件内容
- PHP用正则批量替换Img中src内容,用正则表达式获取图片路径实现缩略图功能
- 在NetBeans中使用正则表达式替换文本内容