=波波日志 > 正则表达式 > 正则表达式 匹配对应的括号=
[转]正则表达式 匹配对应的括号
利用正则表达式, 把
{abcd}efg{A{B{C}D{EF}G}H}hijk{lm{nop}}
替换成
{}efg{}hijk{}
也就是把最外层的大括号里面的内容清空
lip009
深蓝忧郁
JScript code
cgisir
youfayoutian
发表于:2008-09-24 17:31:207楼 得分:0
仔细研究了下3楼的代码。
虽然实现了我要求的功能,但其实并不是我真正想要的
比如我想把最外层的大括号里面的内容拿出来瞧瞧,
又或者是替换成其它内容,将无法实现
{abcd}efg{A{B{C}D{EF}G}H}hijk{lm{nop}}
替换成
{}efg{}hijk{}
也就是把最外层的大括号里面的内容清空
lip009
深蓝忧郁
JScript code
+展开
-JavaScript
var str="{abcd}efg{A{B{C}D{EF}G}H}hijk{lm{nop}}";
var reg=/\{([^\{\}]*(\{[^\{\}]*\})?[^\{\}]*)*\}/g;
var result="";
while(result.length!=str.length){
result=str;
str=str.replace(reg,"{}");
}
alert(result);
var reg=/\{([^\{\}]*(\{[^\{\}]*\})?[^\{\}]*)*\}/g;
var result="";
while(result.length!=str.length){
result=str;
str=str.replace(reg,"{}");
}
alert(result);
cgisir
+展开
-JavaScript
var str = '{abcd}efg{A{B{C}D{EF}G}H}hijk{lm{nop}}';
var reg = /\{(?:[^\{]*?|.*?\{.*?\}[^{]*)\}/g;
var rs = str.replace(reg,'{}');
alert(rs); // {}efg{}hijk{}
var reg = /\{(?:[^\{]*?|.*?\{.*?\}[^{]*)\}/g;
var rs = str.replace(reg,'{}');
alert(rs); // {}efg{}hijk{}
youfayoutian
发表于:2008-09-24 17:31:207楼 得分:0
仔细研究了下3楼的代码。
虽然实现了我要求的功能,但其实并不是我真正想要的
比如我想把最外层的大括号里面的内容拿出来瞧瞧,
又或者是替换成其它内容,将无法实现
类别:正则表达式 作者:转载 日期:2009-07-01 【评论:0】
暂时没有评论!
发表留言
百度赞助
同类热门博文
博格Tag
- flash/flex/fcs/AIR(752)
- Asp.Net/C#/WCF(598)
- 操作系统及应用软件(376)
- JavaScript/Ajax(330)
- SQL及数据库(134)
- 黑客技术(115)
- Asp/VBScript(111)
- HTML/WML/CSS兼容/XML(102)
- PHP/apache/Perl(96)
- 网站排名及优化(92)
- 其他(75)
- showbo日志(66)
- lucene.net/分词技术(33)
- 计算机网络(26)
- 机械重工(26)
- C#设计模式(25)
- Google Maps开发(17)
- 日语学习(15)
- Canvas/VML/SVG(13)
- linux(11)
- 游戏开发(8)
- 正则表达式(5)
- Jsp/Java(4)
最新博文
随机博文
