正则表达式-“匹配大括号里面的内容”怎么写?

Triumph 2003-06-05 10:37:49
在多行的字符串中查找被大括号括住的字符,我用VBScript,这样写:

S = "\{.*\}"

这样只能匹配到左右括号都在同一行内的内容,而左右括号不在同一行内时,它们所括住的内容却不能被匹配,于是我改为:

S = "\{[.\n\r]*\}"

结果什么也找不到了,连同一行内的大括号也不能匹配了。

应该怎样写?

请大家写出后解释一下,我怕看不懂,那样虽然问题解决了,但不明白为什么这样,等于什么也没学到,所以拜托大家了。

=====================================
另外一个问题:
=====================================
如在一个字符串中查找单词“CSDN”,查找的规则是不匹配出现在括号内的该单词,并且在任意一行内不匹配出现在“<>”号之后的该单词。这个正则表达式怎么写?(这个问题在其它贴悬100分贴出但无人回答,解决此问者将同时获得该贴分值)
...全文
5459 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Triumph 2003-06-06
  • 打赏
  • 举报
回复
silentlamb(silent):
第二个看不懂呀,能不能解释一下,我用VBScript怎么写?
silentlamb 2003-06-06
  • 打赏
  • 举报
回复
/\{[\S\s]+\}/
或者
/\{(.|\r\n)+\}/
也可以
\S\s可是微软文档中对\n匹配的标准用法哦

第二个例子这样行不行?
<SCRIPT LANGUAGE="JavaScript">
<!--
function foo(txt){
var t1=/CSDN/img;
var t2=/<[^>]*CSDN[^>]*>/img;
var t3=/(>.*)CSDN/img;
return(txt.replace(t3,"$1").replace(t2,"").match(t1))
}

//-->
</SCRIPT>
0153 2003-06-06
  • 打赏
  • 举报
回复
晕头转向.班其实这种常规表达式的问题最好去Perl的版块问.

第一个问题其实可以用s修饰符
/\{(.*?)\}/gs

第二个问题比较复杂, 我回了那帖, 你去看一下.
Triumph 2003-06-05
  • 打赏
  • 举报
回复
完全正确!!!
第一个问题解决!

请问阿信:
·为什么我写的不对呢?
·为什么要这样写才对呢?
fason 2003-06-05
  • 打赏
  • 举报
回复
sorry:
/\{[^\}]+\}/
fason 2003-06-05
  • 打赏
  • 举报
回复
try:
/\{[^\}]+\)/

87,903

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧