(?<=[[{]+)[^]}]+ 改成下面这样也可以。
1: (?<=[{]+)[^}]+
2: (?<=[{]+) [^}]+ 分为这两部分看。
3: 非贪婪匹配,前面部分匹配以“{”开始,后面匹配以“}”结束。取中间的字符
为什么用到中括号呢?[{] 问号在最前面是什么意思呢
@五月℃夏到了: (?<=[{]+)是反向肯定预查。你可以理解为必须由"{"开始,但是不包括这个“{”
@五月℃夏到了: 中括号[ ] 表示字符集合,这里的[{]就表示这个位置的字符必须是“{”
@Mr.LiuP: 谢谢不过听不懂呀 尤其是?<=这个没有见过
@五月℃夏到了:
互相学习,Jimmy Zhang的《正则表达式 教程》推荐给你。
http://www.cnblogs.com/JimmyZhang/archive/2007/10/24/936151.html
@五月℃夏到了: 对了,补充一句。
(?<=[[{]+)[^]}]+
“下面的正则表达式意思是找出一段话中{}中的字符”实际上是匹配{}中间和[]中间的
我感觉这个正则写的太复杂了。。正则需根据实际情况可以变简单或变复杂。
简单点: {[^}]+} 这个断言“(?<=”,在实际中我很少用。一般在一个内容中匹配多个相同内容,且这些内容有部分关键匹配内容既被上一个使用又被下一个使用时。才会用....
像正则这么生僻,且不是经常使用的,我觉得没必要一下子全搞明白,只要知道有这个功能,在实际使用时才能体会深刻。