关于正则表达式:如何匹配所有字符

sbnui 2006-08-17 08:13:33
asdfasdf<span style="font-size: 22px">asdfasdf</span>asdfasdf
asdfasdf<span style="font-size: 22px">asdfa
asdfasdf
asdfsdf</span>asdfasdf
<span style="font-size: 22px">asdfa
sdf</span>asdfasdf
asdfasdf
如何匹配所有<span style="font-size: 22px">与</span>之间的字符,并包含他们(span),
像这样是可以匹配:
<span style=\"font-size\: 13px\">[^!]+</span>

但问题是他们之间不知道会有什么字符存在,任何看得见的字符再换行符是肯定可能会有的
你不要跟我说这样写:
<span style=\"font-size\: 13px\">[.\s]+</span>
我试过了,不行,js参考手册上的写法:
<span style=\"font-size\: 13px\">[.\n]+</span>
也不行

谁知道怎么写吗???
还望高手指点啊
...全文
1222 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
sbnui 2006-08-19
  • 打赏
  • 举报
回复
汗,俺也搞错了

我本来是想对fason(咖啡人生)你说,不好意思,谢谢你了
patchclass 2006-08-19
  • 打赏
  • 举报
回复
我楼上发错,是表示非贪婪匹配,呵呵
patchclass 2006-08-19
  • 打赏
  • 举报
回复
加?是表示贪婪匹配的,手册上说 [.\n] 表示任意字符是误人子弟,错误的
sbnui 2006-08-19
  • 打赏
  • 举报
回复
谢谢meizz(梅花雪)朋友,搞定了,谢谢
其实也想到用(.|\n)*或(.|\n)+
但就是没用加一个?,看了看JS参考才明白

也谢谢另外几个朋友,不过我都用心测试了一下,不符合我的要求
不过改一下倒是可以,如:
<span style=\"font-size: 13px\">((\w|\W)*?)</span>
<span style=\"font-size: 13px\">((\s|\S)*?)</span>

可能跟我在第二贴中讲的原因有关,进入[]后,\失效了,俺是搞不懂,谁知道原因的说说
wuxinlangman 2006-08-19
  • 打赏
  • 举报
回复
LZ好像说的<span style=\"font-size: 13px\">是22px吧!那如果是13的话肯定不适合了阿
wuxinlangman 2006-08-18
  • 打赏
  • 举报
回复
http://community.csdn.net/Expert/topic/4951/4951419.xml?temp=.4581568
wuxinlangman 2006-08-18
  • 打赏
  • 举报
回复
<SCRIPT LANGUAGE="JavaScript">
<!--
str="asdfasdf<span style=\"font-size: 22px\">asdfasdf</span>asdfasdfasdfasdf<span style=\"font-size: 22px\">asdfaasdfasdfasdfsdf</span>asdfasdf<span style=\"font-size: 22px\">asdfasdf</span>asdfasdfasdfasdf";
alert(str.replace(/<span style=\"font-size\: 22px\">[\s\S]*?<\/span>/gi,""));
//-->
</SCRIPT>
meizz 2006-08-18
  • 打赏
  • 举报
回复
<textarea id="txt" style="width: 100%; height: 200px">
asdfasdf<span style="font-size: 22px">asdfasdf</span>asdfasdf
asdfasdf<span style="font-size: 22px">asdfa
asdfasdf
asdfsdf</span>asdfasdf
<span style="font-size: 22px">asdfa
sdf</span>asdfasdf
asdfasdf
</textarea><br/>
<input type=button value=ok onclick="mm()"/>
<SCRIPT LANGUAGE="JavaScript">
<!--
function mm()
{
var s = document.getElementById("txt").value;
var r = /<span style=\"font-size: 22px\">[\w\W]+?<\/span>/gi;
var a = s.match(r);
if(a)for(var i=0; i<a.length; i++) alert(a[i]);
}
//-->
</SCRIPT>
lantersen 2006-08-18
  • 打赏
  • 举报
回复
function checkit()
{
var reg = /<span[^>](.)>(.*)<\/span>/gi;
var content = "asdfasdf<span style='font-size: 22px'>asdfasdf</span>asdfasdf";
var result = content.match(reg);
alert(result[0]);
}
fason 2006-08-18
  • 打赏
  • 举报
回复
var re = /<span style=\"font-size\: 22px\">((.|\n)*?)<\/span>/g;
while (re.exec(s)) {
alert(RegExp.$1);
}
sbnui 2006-08-17
  • 打赏
  • 举报
回复
.一量进入[]中间就变成\.

不信可以这样测试:
asdfasdf<span style="font-size: 22px">asdfasdf</span>asdfasdf
正则表达式:
<span style=\"font-size\: 22px\">[^.]+</span>
就可以匹配成功

还有上面的13与22是笔误

87,915

社区成员

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

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