public static void main(String[] args) {
String s = "xxyyxxxyxxyxx";
Pattern greedy = Pattern.compile("xx(.*)xx");
Pattern reluctant = Pattern.compile("xx(.*?)xx");
Pattern possessive = Pattern.compile("xx(.*+)xx");
Matcher m1 = greedy.matcher(s);
Matcher m2 = reluctant.matcher(s);
Matcher m3 = possessive.matcher(s);
while(m1.find()) {
System.out.println("greedy..." + m1.group(1));
}
while(m2.find()) {
System.out.println("reluctant..." + m2.group(1));
}
while(m3.find()) {
System.out.println("possessive..." + m3.group(1));
}
}
输出结果
greedy...yyxxxyxxy
reluctant...yy
reluctant...y
greedy (.*)吃掉整字符串,然后从最后一个字符开始回退,所以找到最后一个xx
reluctant (.*?)从左侧开始匹配最少的字符,每当找到一个xx结尾就匹配一次
possessive (.*+)因为吃掉整个字符串后面没有xx,而且不会进行回退,所以没有匹配到任何结果
一个用于替换字符串模式的例子:
public class StringAnalysis {
/**
* 将字符串中特定模式的字符转换成map中对应的值
*
* @param s
* 需要转换的字符串
* @param map
* 转换所需的键值对集合
* @return 转换后的字符串
*/
public static String convert(String s, Map<String, String> map) {
Matcher m = Pattern.compile("<#=(.*?)#>").matcher(s);
StringBuffer sb = new StringBuffer();
while (m.find()) {
String value = map.get(m.group(1));
m.appendReplacement(sb, value != null ? value : "null");
}
m.appendTail(sb);
return sb.toString();
}
public static void main(String[] args) {
String str = "姓名:<#=name#>\n性别:<#=sex#>\n住址:<#=address#>\n联系方式:<#=linkinf#>";
Map<String, String> map = new HashMap<String, String>();
map.put("xxx", "哈哈");
map.put("name", "Steven");
map.put("address", "XX市XX区XXX二路X-X号X室");
map.put("linkinf", "13577777777");
System.out.println(convert(str, map));
}
}
输出结果:
姓名:Steven
性别:null
住址:XX市XX区XXX二路X-X号X室
联系方式:13577777777
分享到:
相关推荐
如果你曾经用过Perl或任何其他内建正则表达式支持的语言,你一定知道用正则表达式处理文本和匹配模式是多么简单。如果你不熟悉这个术语,那么“正则表达式”(Regular Expression)就是一个字符构成的串,它定义了一...
正则表达式(regular expression)是一个描述字符模式的对象。JavaScript的RegExp类表示正则表达式,而String和RegExp都定义了使用正则表达式进行强大的模式匹配和文本检索与替换的函数。 ECMAScript v3对JavaScript...
正则表达式,正则表达式,正则表达式 正则表达式 正则表达式 正则表达式 正则表达式 正则表达式 正则表达式
常用正则表达式 正则表达式 常用正则表达式 正则表达式
正则表达式.rar正则表达式.rar正则表达式.rar正则表达式.rar
《学习正则表达式》从正则表达式的基本概念讲起,到编写完整的sed和Perl脚本,再到转换HTML文件,将这种强大的工具解释得清晰透彻。...《学习正则表达式》适合对正则表达式感兴趣的程序员和互联网从业者。
正则表达式验证工具 V1.0 本软件主要用于检测正则表达式是否正确。 运行环境:本软件为绿色软件,无需安装,但需要Microsoft .NET Framework 4 支持,如果没有请前去下载(下载路径:...
关键字:正则表达式 模式匹配 Javascript 摘要:收集一些常用的正则表达式。 正则表达式用于字符串处理,表单验证等场合,实用高效,但用到时总是不太把握,以致往往要上网查一番。我将一些常用的表达式收藏在这里...
正则表达式日期校验 正则表达式日期校验 正则表达式日期校验
正则表达式正则表达式正则表达式正则表达式 验证程序
正则表达式正则表达式正则表达式正则表达式正则表达式正则表达式正则表达式正则表达式正则表达式正则表达式正则表达式正则表达式正则表达式正则表达式正则表达式正则表达式正则表达式正则表达式正则表达式正则表达式...
正则表达式帮助 有用的正则表达式帮助 有用的正则表达式帮助 有用的正则表达式帮助 有用的
Java正则表达式Java正则表达式Java正则表达式Java正则表达式
《正则表达式经典实例》讲解了基于8种常用的编程语言使用正则表达式的经典实例。书中提供了上百种可以在实战中使用的实例,以帮助读者使用正则表达式来处理数据和文本。对于如何使用正则表达式来解决性能不佳、误报...
正则表达式 详解 基础 正则表达式之道(A Tao of Regular Expressions)
常用正则表达式大全.txt常用正则表达式大全.txt常用正则表达式大全.txt常用正则表达式大全.txt常用正则表达式大全.txt
正则表达式速查 正则表达式举例 正则表达式学习 (4页A4纸)
正则表达式 正则表达式正则表达式正则表达式正则表达式正则表达式正则表达式正则表达式
让 Office Excel、WPS 表格支持正则表达式的免费插件:「Excel 正则工具」顾名思义,需要使用 “正则表达式(PCRE)” 的知识来进行操作,对于完全没有接触过正则的朋友也许有一定的入门门槛,但正则实在是太过强大...
正则表达式总结正则表达式总结正则表达式总结正则表达式总结正则表达式总结正则表达式总结