关于作者

正则出问题了,求解....谢谢

上一篇 / 下一篇  2008-08-27 16:11:33 / 天气: 舒适 / 心情: 郁闷

查看( 125 ) / 评论( 5 )
Test
  • m:测试....

CODE:

<html>
U s!s_qm}0 <body>
8j%fE%O+K"U1[T1n UC C0 <script>无忧脚本 Z!q;x3Qhx2J1G W
var str='11111111111111<MARQUEE id=mar width="90.09%">2222222222222222</MARQUEE>3333333333333333333333<MARQUEE id=mar width="90%">4444444444444</MARQUEE>';
opU7Z!n:oqZ f0 document.write('替换前:'+str.replace(/</ig, '&lt;').replace(/>/ig, '&gt;'));
,v*|t7d9uD!`0 str = str.replace(/<MARQUEE.+width="([0-9]+|[0-9]+\.{0,1}[0-9]{1,2})%">(.*)<\/MARQUEE>/ig, '++$1+ $2 ++++');无忧脚本i Q(zvY#~.D|P8w
document.write('<br><br>替换后:'+str);
3{ Q,C+[2jF(zw0 document.write('<br><br><font color=red>怎么不是我想要的"   <b>11111111111111++90.09+2222222222222222++
i?(Z8X5sQL0+3333333333333333333333++90+4444444444444+++</b>   "啊???? </font>');无忧脚本-d0u kMy j
</script>
D yX!D?P9kK0 </body>无忧脚本-oJ n@9L*`:dN,v H
</html>
字符串:
$p.X` p"I&~b0 无忧脚本-@L$v q1o+O
11111111111111<MARQUEE id=mar width="90.09%">2222222222222222
2Rz*`{Mc*gb"Oe;M0</MARQUEE>3333333333333333333333<MARQUEE id=mar width="90%">4444444444444</MARQUEE>
)azw8G+Y;E0
7wB6|w RF)A0 我想替换得到:
i u {$eAz2N0 无忧脚本y'{5dB;t8m~Z!r
11111111111111++90.09+2222222222222222+++3333333333333333333333++90+4444444444444+++无忧脚本|L R&e'YW
无忧脚本m4{;h#QG7S+}
弄了好久,始终得不到我想要的结果.......
xGH^$r$?4?@"`h0 无忧脚本"pa%y/Cj
[[I] 本帖最后由 yellky 于 2008-8-27 19:05 编辑 [/I]]

TAG: 正则

zmm的个人空间 zmm 发布于2008-08-27 16:49:28

CODE:

<script language="javascript">
      var str='11111111111111<MARQUEE id=mar width="90.09%">2222222222222222</MARQUEE>3333333333333333333333<MARQUEE id=mar width="90%">4444444444444</MARQUEE>';
      alert(str.replace(/<MAR[\S\s]+?([\d\.]+)[\S\s]*?>([\S\s]*?)<\/MARQUEE>/ig, '++$1+$2+++'));
</script>

残影 yellky 发布于2008-08-27 18:14:28
回复 #2 zmm 的帖子
谢谢版主.....
9d$M.|D*k6w&l无忧脚本-//体验编写HTML代码的乐趣 - 51JS.COMS%MTAUt8Ih
ps:  谁能解释一下为什么-//体验编写HTML代码的乐趣 - 51JS.COMh(HHy.a1Z

I&e4f?3i,w,c)vP&x无忧脚本-//体验编写HTML代码的乐趣 - 51JS.COM/<MAR[\S\s]+?([\d\.]+)[\S\s]*?>([\S\s]*?)<\/MARQUEE>/   可以正确的匹配www.51js.com$\!b0K0n;i)o

pmaU
h无忧脚本-//体验编写HTML代码的乐趣 - 51JS.COM
无忧脚本U
K,^{J0J$R

$N%n.i;Vf*p6t
/<MARQUEE.+width="([0-9]+|[0-9]+\.{0,1}[0-9]{1,2})%">(.*)<\/MARQUEE>/   却匹配不正确
"?t&V-O|~{~无忧脚本,无忧,脚本,JavaScript,JS,HTML,DHTML,CSS,XML,XSL
9MHc}#\&}无忧脚本么?无忧脚本-//体验编写HTML代码的乐趣 - 51JS.COM)T
v
C K|)U1?

-//体验编写HTML代码的乐趣 - 51JS.COM'\:^%\Kr4X#?b
因为我还有其他几个正则却出现了同样的问题.......
UHrE.Z无忧脚本,无忧,脚本,JavaScript,JS,HTML,DHTML,CSS,XML,XSL
h5Za$V'c~1y-//体验编写HTML代码的乐趣 - 51JS.COM谢谢!
campaign发布于2008-08-27 18:37:20
'11111111<MARQUEE id=mar width="90.09%">2222222222</MARQUEE>3333333333333<MARQUEE id=ma width="90%">4444444</MARQUEE>333333'.replace(/<M.*?([\d.]+).*?>(\d+)<.*?>/g,"++$1+$2+++")无忧脚本-//体验编写HTML代码的乐趣 - 51JS.COMw9E*\[ h~
我也写了个www.51js.comf h9WG&tH
呵呵
[q @U9o7y~;^你的问题在于
7p#N+KZ`+b9TI-//体验编写HTML代码的乐趣 - 51JS.COM.+www.51js.com!F5[/l8K\eK? Y
你没有分清贪婪和惰性匹配
5l4xan6xR-s/B'VQwww.51js.com.+是贪婪,.+?是惰性
1Vqg*u;rK
HQ-//体验编写HTML代码的乐趣 - 51JS.COM
举个例子-//体验编写HTML代码的乐趣 - 51JS.COM|j K#y)_ {O
var s = "abbbaabbbaaabbb"www.51js.comKO}5b(t`a*j0X
alert(s.match(/.*bbb/g)//贪婪abbbaabbbaaabbb只有一个
!v}W5d"dalert(s.match(/.*?bbb/g)//惰性会打出abbb,aabbb,aaabbbwww.51js.com#u['MJ4nk
因为贪婪是先比对整个字符串,abbbaabbbaaabbb一上来.*就是abbbaabbbaaa所以结束了比较,找到了-//体验编写HTML代码的乐趣 - 51JS.COM L7O"^5~sYG!i)X
惰性是从头开始比较
N}(G(Yv4~a
:` Iox6^H_-//体验编写HTML代码的乐趣 - 51JS.COMab
1e+|H,\`(p;X7w%Os-//体验编写HTML代码的乐趣 - 51JS.COMabb无忧脚本-//体验编写HTML代码的乐趣 - 51JS.COM;d!h:i7v0PVfm
abbb 好找到了
CTK(Z \ o^@无忧脚本,无忧,脚本,JavaScript,JS,HTML,DHTML,CSS,XML,XSL因为有g
O4@2v|\)E?www.51js.com所以开始下一次的比较
,q
zm K%e-//体验编写HTML代码的乐趣 - 51JS.COM
a
,^@z*R2{4g无忧脚本aa
C2\(]%}8r*^v无忧脚本-//体验编写HTML代码的乐趣 - 51JS.COMaab
1`wP9N v+O|无忧脚本aabb无忧脚本,无忧,脚本,JavaScript,JS,HTML,DHTML,CSS,XML,XSL0LE{|6N1Ebg
aabbb好找到了
2d(gQ5Ro4B-X Q一次类推无忧脚本,无忧,脚本,JavaScript,JS,HTML,DHTML,CSS,XML,XSLzX.z7f)lo
找到了三个-//体验编写HTML代码的乐趣 - 51JS.COM8i%rX\;}
所以你的这个无忧脚本-//体验编写HTML代码的乐趣 - 51JS.COM7Vycn%tj:^x
只找到一次w3q(dfO(u
改成
(Ga'v9`\2G(B7Oh"xD无忧脚本-//体验编写HTML代码的乐趣 - 51JS.COM/<MARQUEE.+?width="([0-9]+|[0-9]+\.{0,1}[0-9]{1,2})%">(.*?)<\/MARQUEE>/无忧脚本,无忧,脚本,JavaScript,JS,HTML,DHTML,CSS,XML,XSLA3X        Pr
Ot

ok了
残影 yellky 发布于2008-08-27 19:04:55
回复 #4 campaign 的帖子
-//体验编写HTML代码的乐趣 - 51JS.COM)C1M1b*Awa,J
无忧脚本-//体验编写HTML代码的乐趣 - 51JS.COM
S8c,K:S^X A

非常感谢!!!7]_)VY!kb2zq'O

,u/gyhm7ku!c无忧脚本终于知道是怎么回事了....www.51js.com(V(\
hrm u

-//体验编写HTML代码的乐趣 - 51JS.COM
wSh3]1N7}

谢谢谢!!!!
yuguokai1发布于2008-08-27 20:54:30
3
234
我来说两句

(可选)