假如有这样一个值变量和一个字符串
map ={"r3434":"变量1","r0002":"变量2"}
String str="99dfasdfa${r3434}dfaerasdfasdf${r0002}334234";
怎么从str串中取得r3434 r0002这样的变量?或者说把str中的这两个变量都用map中的值替换成
"99dfasdfa变量1dfaerasdfasdf变量2334234"
朋友位,来贴你们的代码吧。正则实在无力,没法解决
String map="{\"r3434\":\"变量1\",\"r0002\":\"变量2\"}";
ScriptEngineManager sem=new ScriptEngineManager();
//使用jdk1.6的脚本引擎用于将你这个map作为js的对象来进行解析
ScriptEngine se=sem.getEngineByName("javascript");
se.put("object", map);
String str="99dfasdfa${r3434}dfaerasdfasdf${r0002}334234";
Pattern p=Pattern.compile("\\$\\{(.*?)}");
Matcher m=p.matcher(str);
StringBuffer sb=new StringBuffer();
while(m.find()){
//System.out.println(m.group(1));
se.put("key", m.group(1));
se.eval("var obj=eval(\"(\"+object+\")\");var value=obj[key];");
m.appendReplacement(sb, (String)se.get("value"));
}
m.appendTail(sb);
System.out.println(sb);
public static void main(String[] args) {
String str = "99dfasdfa${r3434}dfaerasdfasdf${r0002}334234";
Pattern p = Pattern.compile("\\$\\{(.*?)}");
Matcher m = p.matcher(str);
while(m.find()){
System.out.println(m.group(1));
}
}
public static void main(String[] args) {
String s1 = "r3434";
String v1 = "变量1";
String s2 = "r0002";
String v2 = "变量2";
Map<String, String> map = new HashMap<String, String>();
map.put(s1, v1);
map.put(s2, v2);
String str="99dfasdfa${r3434}dfaerasdfasdf${r0002}334234";
Set<String> set = map.keySet();
Iterator<String> iter = set.iterator();
while(iter.hasNext()){
String key = iter.next();
str = str.replace("${" + key + "}", map.get(key));
}
System.out.println(str);
}
EL表达式的replace功能相当于JAVA中的replace,不支持正则表达式,所以要结合实际自写一个EL方法,其实就是用java的replaceAll来实现。不熟悉自己写EL表达式方法的朋友可以自己百度一下,有很多例子,步骤都差不多,...
[code="java"] public static void main(String[] args) { Map map = new HashMap(2); map.put("name", "Jame Gosling"); map.put("...${name} did a gr.
EL表达式,正则表达式。 正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表通常被用来检索、替换那些符合某个模式(规则)的文本。 ...
目的 在Freemarker模板中,使用replace方法,将链接的域名去掉 比如“http://www.buddie.cn/ab/cd”或... 实现 ${url?replace('http[s]?://[\\w\\.:\\d]*','','ri')} 主要是replace的第三个参数,要加r,用于开...
EL表达式中使用函数 <%@ page language="java" pageEncoding="UTF-8"%> <!DOCTYPE html> <html lang="zh"> <head> <script type="text/javascript"> var phone= '${detailList....
C#(.NET)模板字符串占位符正则表达式替换(类EL表达式) 因为需要自己写一个日志记录工具,文件名可以在配置文件中配置,能够支持模板替换自定义文件名,所以在此将模板字符串占位符替换的源代码贴出,以备后忘。 ...
从J2SE1.4起Java增加了对正则表达式的支持就是java.util.regex包 package testreg; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * Title: 正则表达式的研究 * Description:...
给定一个像这样的字符串: "The dog has a long tail, and it is RED!" 什么样的jQuery或JavaScript魔术可以用来将空
今天我们主要来学习一下 正则表达式在 Python语言 中的应用!大多数编程语言的正则表达式设计都师从Perl,所以语法基本相似,不同的是每种语言都有自己的函数去支持正则,今天我们就来学习 Python中关于 正则表达式...
正则表达式(通常称为模式)是用于指定特定目的所需的一组字符串的表达式。指定有限字符串集的简单方法是列出其元素或成员。但是,通常有更简洁的方法来指定所需的字符串集。例如,包含三个字符串“Handel”,“Hä...
ORACLE正则表达式函数详解Oracle10g提供了四个正则表达式函数regexp function: REGEXP_LIKE, REGEXP_REPLACE,REGEXP_INSTR,REGEXP_SUBSTR。REGEXP_LIKE:(匹配) 比较一个字符串是否与正则表达式匹配(srcstr, pattern...
3.常用的正则表达式总结: 匹配符号: 2E80~33FFh:中日韩符号区。收容康熙字典部首、中日韩辅助部首、注音符号、日本假名、韩文音符,中日韩的符号、标点、带圈或带括符文数字、月份,以及日本的假名组合、...
一、去除数据里的标签 delHtmlTag(str) { str = str.replace(/<[^>]+>/g, '');... return str.replace(/\s+/g,''); //去掉所有空格 .../i.test(el) //判断是否是<img></img>标签包裹的数据
正则表达式,就是使用定义好的特定字符组成一个“规则字符串”,来描述、匹配一系列符合其规则的字符串。也就是说,通过正则表达式,我们可以按照一定的匹配规则从字符串中提取出我们想要的数据。一、匹配规则1.普通...
正则修饰符: i 执行对大小写不敏感的匹配。 g 执行全局匹配(查找所有匹配而非在找到第一个匹配后停止) m 执行多行匹配。 方括号用于查找某个范围内的字符: [abc] 查找方括号之间的任何字符 ...
awk 使用正则表达式 在awk中,正则表达式(regex)允许动态和复杂的模式定义。 您不仅限于搜索简单的字符串,而且还搜索模式中的模式。 使用正则表达式匹配awk中的行的语法为: word ~ / match / 相反的是不...
正则表达式,英文全称:Regular Expression。 它是使用单个字符串来描述、匹配一系列符合某个句法规则的字符串搜索模式。 主要用来搜索和替换文本。它也是一种对象。 我们在介绍字符串方法的时候,提到过正则表达式...
\s* 表示若干个空格(可以是0个)。 \s+ 表示一个或多个空格public class Test { public static void main(String[] args) { String str = " kk kkk klaf fsaff fsge tg sagh ger fsaga "; //测试的字符串 String
正则表达式中的特殊字符 字符 含意 \ 做为转意,即通常在"\"后面的字符不按原来意义解释,如/b/匹配字符"b",当b前面加了反斜杆后/\b/,转意为匹配一个单词的边界。 -或- 对正则表达式功能...
// An highlighted block &lt;template&...el-input style="width: 200px;" v-model="inttest"&gt;&lt;/el-input&gt; &
Spring EL表达式使用详解什么是Spring EL表达式注入字面值注入操作系统(OS)的属性注入properties配置文件中数据Bean属性调用Bean方法调用T运算符构造器内联集合给集合赋值内联Map给map赋值给数组赋值Elvis运算符#...
当FreeMarker遇到正则表达式 需求描述 在编制 FreeMarker 模板文件时,我有一个需求,简单描述如下: 将一个表达式(expr)进行分解成多个token,每个token要么是一个标识符、要么不是,比如 当 expr = &...
使用正规表达式编写更好的 SQL 作者:Alice Rischert Oracle Database 10g 中的正规表达式特性是一个用于处理文本数据的强大工具 Oracle Database 10g 的一个新特性大大提高了您搜索和处理字符数据的能力。这个...
正则表达式:描述了一种字符串匹配的模式,可以用来检查一个字符串中是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。 以输入英文短句(英文单词+空格)为例: #include "stdafx.h" #...
程序员的世界有个笑话,在你遇到困难并决定使用正则表达式的时候,你会发现你又多了个困难。正则表达式是个非常强大的工具,老练的程序员常把它当作最后的杀手锏,一旦使用,必会技惊四座。正则表达式是一种专门用于...
论文标题: Cold-Start and Interpretability: Turning Regular Expressions ...目录摘要 Abstract1 引入 Introduction2 背景 Background2.1 正则表达式 Regular Expression2.2 用于文本分类的正则表达式系统2.3 有限
本套Java视频完全针对初级学员,课堂实录,自发布以来,好评如潮!Java视频中注重与学生互动,讲授幽默诙谐、细致入微,覆盖Java基础所有核心知识点,同类Java视频中也是代码量大、案例多、实战性强的。同时,本Java视频教程注重技术原理剖析,深入JDK源码,辅以代码实战贯穿始终,用实践驱动理论,并辅以必要的代码练习。 通过20的课程学习,使学员掌握java核心语法、面向对象思想编程、异常处理、IO流、集合类、多线程、网络编程等。
visio_2016下载安装,亲测可用,不需要破解,而且无秘钥。简单方便实用
pandas是python中非常常用的数据分析库,在数据分析,机器学习,深度学习等领域经常被使用。本课程会讲解到pandas中核心的一些知识点,包括Series以及DataFrame的构建,赋值,操作,选择数据,合并等等,以及使用pandas对文件进行读取和写入,使用pandas绘图等等。 让大家在短时间内快速掌握python的数据分析库pandas的使用。
OCJP是甲骨文推出的的国际认证。 本课程由Java总监级讲师专注Java十三年,不但包含OCJP考试全部内容,还特意制作了很有针对性的阶段性项目让学习考取证书的同时获取一定的项目经验。 相关视频 OCJP(Oracle Certified Java Programmer)是Oracle认证的Java程序员的简称,即Sun被Oracle收购之前的SCJP,是Java语言的拥有厂商对全球的Java开发人员进行的 技术水平认证。该认证在国际上获得了IT 公司的普遍认可, 是目前国际上最热门的IT认证之一。