正则表达式写法?
2016-04-05 19:46
204 查看
问题1:
最近碰到一个问题,就是如何根据两端的字符来匹配相应的字符串,正则表达式如何写?
答案是用(.*?)
分析:
例如,\\[(.*?)\\]这个正则表达式匹配两端是[]符号的字符串
其中一点代表任意字符,星号代表字符串长度,?表示限制贪婪匹配
以下是有?的情况下,即当第一次匹配到 ] 停止,开始查找 [,进行第二次匹配查找。
结果:[123]
[ghi]
对比下面是无?的情况,即贪婪匹配。
结果:[123]def[ghi]
扩展:
匹配多个非逗号字符串 [^,]+
abc,def,ghi
结果 abc def ghi
最近碰到一个问题,就是如何根据两端的字符来匹配相应的字符串,正则表达式如何写?
答案是用(.*?)
分析:
例如,\\[(.*?)\\]这个正则表达式匹配两端是[]符号的字符串
其中一点代表任意字符,星号代表字符串长度,?表示限制贪婪匹配
以下是有?的情况下,即当第一次匹配到 ] 停止,开始查找 [,进行第二次匹配查找。
String regEx = "\\[(.*?)\\]"; String str = "abc[123]def[ghi]456"; Pattern pattern = Pattern.compile(regEx); Matcher matcher = pattern.matcher(str); System.out.println(matcher.matches()); while( matcher.find() ) { System.out.println( "" + matcher.group() ); }
结果:[123]
[ghi]
对比下面是无?的情况,即贪婪匹配。
String regEx = "\\[(.*)\\]"; String str = "abc[123]def[ghi]456"; Pattern pattern = Pattern.compile(regEx); Matcher matcher = pattern.matcher(str); System.out.println(matcher.matches()); while( matcher.find() ) { System.out.println( "" + matcher.group() ); }
结果:[123]def[ghi]
扩展:
匹配多个非逗号字符串 [^,]+
abc,def,ghi
结果 abc def ghi
相关文章推荐
- 一个关于带武器的游戏角色类
- 一个关于带武器的游戏角色类
- Linux替换文本字符串(Vim编辑器中使用)
- hdoj 1425 sort 【哈希算法】
- 方法的重写
- WSP_fragment
- 微服务实战(一):微服务架构的优势与不足
- SDAU 1007
- 第6周项目1:分数类的雏形
- Codeforces Round #252(Div. 2) 441A. Valera and Antique Items 水题
- 子类的实例化过程
- 为RecyclerView打造万能适配器
- 算法:插入排序
- Project Euler:Problem 86 Cuboid route
- WSP_mainActivity
- 《Swift入门》关于Swift
- 58 单例模式与auto_ptr
- SDAU 1006
- ZOJ 1002 Fire Net
- Nginx的负载均衡 - 一致性哈希 (Consistent Hash)