b3log handleMappingString
来源:互联网 发布:2016网络大电影排行 编辑:程序博客网 时间:2024/06/11 20:54
\\{[^}]+\\}
匹配“{”,之后不能紧跟“}”,可以多个{,最后匹配“}”
即字符串中第一个“{”和第一个“}”之间的部分
匹配“{”,之后不能紧跟“}”,可以多个{,最后匹配“}”
即字符串中第一个“{”和第一个“}”之间的部分
双斜杠“\\”为java里的转义字符
import java.util.regex.Matcher;import java.util.regex.Pattern;import java.util.ArrayList;import java.util.List;public class test_handleMappingString {//String uriPattern="http://www.188029.net";//String uriPattern="http://www.188029.net/go?tt=3";//String uriPattern="http://www^188029.net";//String uriPattern="http://www^188029\net";//String uriPattern="http://www^188029\\net";//String uriPattern="http://w{ww^188029\\net";//String uriPattern="http://w{ww^188{029}\\net";String uriPattern="I {fuck {you} very} much !";//String uriPattern="{}";//String uriPattern="{8}";//String uriPattern="{{}";List<String> paramNames = new ArrayList<String>();List<Integer> posSpan = new ArrayList<Integer>();List<Character> afertCharacters = new ArrayList<Character>();String handleMappingString() { final Pattern pattern = Pattern.compile("\\{[^}]+\\}"); final Matcher matcher = pattern.matcher(uriPattern); final StringBuilder uriMapping = new StringBuilder(uriPattern); int fixPos = 0; char[] tem; int lastEnd = 0; while (matcher.find()) { System.out.println("找到了"); tem = new char[matcher.end() - matcher.start() - 2]; for(int i=0;i<tem.length;i++) System.out.println("tem "+tem[i]); System.out.println(matcher.start()); System.out.println(matcher.end()); uriMapping.getChars(matcher.start() - fixPos + 1, matcher.end() - fixPos - 1, tem, 0); paramNames.add(new String(tem)); if (lastEnd == 0) { posSpan.add(matcher.start()); } else { posSpan.add(matcher.start() - lastEnd); } uriMapping.replace(matcher.start() - fixPos, matcher.end() - fixPos, "*"); fixPos = fixPos + matcher.end() - matcher.start() - 1; lastEnd = matcher.end(); if (matcher.end() - fixPos < uriMapping.length()) { afertCharacters.add(uriMapping.charAt(matcher.end() - fixPos)); } else { afertCharacters.add(null); } } return uriMapping.toString(); }/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubtest_handleMappingString okla=new test_handleMappingString();String letMeSee=okla.handleMappingString();System.out.println(letMeSee);}}输出:
找到了
tem
tem
....
tem
2
13
I * very} much !
- b3log handleMappingString
- b3log 皮肤
- Chinasb & B3log!
- 移居 B3log
- B3log 开源
- B3log Solo & B3log Symphony/Rhythm
- B3log Solo是什么
- 开源b3log源码赏析
- 开源b3log代码赏析
- 开源b3log代码赏析
- b3log的query方法
- b3log的preference表
- b3log StaticResources赏析
- 测试 b3log getQueryStringJSONObject
- b3log solo 试用日志
- b3log中数据库连接的处理
- 序列化-b3log代码赏析
- 开源b3log创建MySQL表
- 软件编程精髓:开发者需知的十项真理
- Selenium知识点总结
- PyDev 安装和配置
- 摆脱“概念化”,自动售货机玩儿“物联网”是否靠谱?
- asp.net使用母版页时js出现问题
- b3log handleMappingString
- 表达式求解
- QT的事件系统
- H面试(24):调整数组顺序使奇数位于偶数前面
- C++ 虚函数表解析
- IOS动画Core Animation详解
- ANT
- Linux上程序调试的基石(1)--ptrace
- mysql