正则表达式 字符串

boloverr8888 2010-02-02 08:59:05
例如


<link rel="stylesheet" href="/images/style.css" />
<SCRIPT language=JavaScript type=text/JavaScript>
//改变图片大小
function resizepic(thispic)
{
if(thispic.width>400) thispic.width=400;
}
//无级缩放图片大小
function bbimg(o)
{
var zoom=parseInt(o.style.zoom, 10)||100;
zoom+=event.wheelDelta/12;
if (zoom>0) o.style.zoom=zoom+'%';
return false;
}
</SCRIPT>

<script type="text/javascript">


我想要匹配

<link rel="stylesheet" o.style.zoom=zoom+'%'; 之间 包括这两个字符串的正则!

大家帮我写下!
...全文
447 35 打赏 收藏 转发到动态 举报
写回复
用AI写文章
35 条回复
切换为时间正序
请发表友善的回复…
发表回复
gege2meimei 2010-12-13
  • 打赏
  • 举报
回复
正在找!先回复下
赵4老师 2010-02-03
  • 打赏
  • 举报
回复
用Perl
十八道胡同 2010-02-03
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 boloverr888 的回复:]
引用 21 楼 haozi8993 的回复:
UE对好像对正则支持不好,很多明明可以按规则匹配的楞是不给匹配,也不知道为啥



那给推荐个可以批量替换的软件把
[/Quote]
Regex buddey 好像是这么写的。
「已注销」 2010-02-03
  • 打赏
  • 举报
回复
[Quote=引用 21 楼 haozi8993 的回复:]
UE对好像对正则支持不好,很多明明可以按规则匹配的楞是不给匹配,也不知道为啥
[/Quote]


那给推荐个可以批量替换的软件把
罗耗子 2010-02-03
  • 打赏
  • 举报
回复
UE对好像对正则支持不好,很多明明可以按规则匹配的楞是不给匹配,也不知道为啥
「已注销」 2010-02-03
  • 打赏
  • 举报
回复
举个例子!

<html xml:lang="zh-CN" lang="zh-CN" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>欢迎访问[源码论坛科汛网站管理系统(CMS)-开源交流社区]</title>
<meta name="keywords" content="ASP源码论坛,科汛网站管理系统,Kesion CMS V5.0,科汛开源社区" />
<!--科汛CMS网站管理系统 Kesion CMS 5.5 V6开源社区-->
<meta name="MSSmartTagsPreventParsing" content="TRUE" />
<meta http-equiv="MSThemeCompatible" content="Yes" />
<link rel="SHORTCUT ICON" href="favicon.ico" />
<link rel="stylesheet" type="text/css" id="css" href="skins/default.css" />
<link id="css" href="skins/dv_wnd.css" type="text/css" rel="stylesheet">
<script language="javascript" src="inc/dv_wnd.js" type="text/javascript"></script>
<script type="text/javascript" language="javascript" src="inc/main82.js"></script><link title="源码论坛科汛网站管理系统(CMS)-开源交流社区-频道列表" type="application/rss+xml" rel="alternate" href="rssfeed.asp" />

<link title="源码论坛科汛网站管理系统(CMS)-开源交流社区-最新20篇论坛主题" type="application/rss+xml" rel="alternate" href="rssfeed.asp?rssid=4" />
</head>
<body>


我想用 UltraEdit 批量查找这两段字符串之间的段落(头尾的两个字符串)

一定要在UltraEdit 上能用的才行

因为上面的哥哥们的都不行。
milaguo 2010-02-03
  • 打赏
  • 举报
回复
嗯,楼上的写的不错丫
mekelly 2010-02-03
  • 打赏
  • 举报
回复
这个里面有一个难点,一般regex都是以一行为标准的,
如果将多行看成一行,需要perl中增加 s 选项;
mekelly 2010-02-03
  • 打赏
  • 举报
回复

use strict;
use warnings;
use POSIX;


my $input = "c:/test.htm";
my $total;

open TMP, "<$input" || die "Cannot Open Input FILE $!";
while (<TMP>) {
$total = $total.$_;
}

print $total;
print "\n\n";
print "after:\n";
# $total =~ s/.*(<link rel.*o\.style\.zoom=zoom).*/$1/sg;
$total =~ s/.*(<link rel=\"stylesheet\".*o\.style\.zoom=zoom\+'%';).*/$1/sg;
print $total;


已经搞定,可以把文件放到c:\test.htm上测试一下,
需要安装perl~~~
「已注销」 2010-02-03
  • 打赏
  • 举报
回复
[Quote=引用 30 楼 milaguo 的回复:]
每一个都不一样的,楼主;

比如说 PERL,有自己的规则,

比如说 用SI,也有自己规则,

大致是一样的,但是细微的不同,比如有的适配项1是  \1  \2 , 可有的就是  $1 $2

^ + 你的第一段字符串描述 ( .* ) 你的第二段字符串描述 $

注意的是,单引号,双引号,括号等 特殊字符,需要 \转义表达,很简单


如果是要 贪婪匹配,那就 ?
[/Quote]

哥帮我改改吧!
milaguo 2010-02-03
  • 打赏
  • 举报
回复
每一个都不一样的,楼主;

比如说 PERL,有自己的规则,

比如说 用SI,也有自己规则,

大致是一样的,但是细微的不同,比如有的适配项1是 \1 \2 , 可有的就是 $1 $2

^ + 你的第一段字符串描述 ( .* ) 你的第二段字符串描述 $

注意的是,单引号,双引号,括号等 特殊字符,需要 \转义表达,很简单


如果是要 贪婪匹配,那就 ?
「已注销」 2010-02-03
  • 打赏
  • 举报
回复
[Quote=引用 28 楼 taodm 的回复:]
楼主需要支持平衡组或者嵌套的正则库来解析复杂的语法。
另外,注意.是否可以表示\n的问题。
最后,解析html等宜用专门的解析器,而不是自己写正则。
[/Quote]

有没有批量替换的 介绍个!
taodm 2010-02-03
  • 打赏
  • 举报
回复
楼主需要支持平衡组或者嵌套的正则库来解析复杂的语法。
另外,注意.是否可以表示\n的问题。
最后,解析html等宜用专门的解析器,而不是自己写正则。
josephSC 2010-02-03
  • 打赏
  • 举报
回复
up
hallowwar 2010-02-03
  • 打赏
  • 举报
回复
学习了。
「已注销」 2010-02-03
  • 打赏
  • 举报
回复
进来请看此回复!



又出现了一个很奇怪的问题!

听我详细描述:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>在word里如何移动插入图片-软件使用-IT 吧 </title>
<meta name="keywords" content="如何,移动,插入,图片 />
<meta http-equiv=Content-Type content="text/html; charset=gb2312">
<link rel="stylesheet" href="/images/style.css" />
<SCRIPT language=JavaScript type=text/JavaScript>
//改变图片大小
function resizepic(thispic)
{
if(thispic.width>400) thispic.width=400;
}
//无级缩放图片大小
function bbimg(o)
{
var zoom=parseInt(o.style.zoom, 10)||100;
zoom+=event.wheelDelta/12;
if (zoom>0) o.style.zoom=zoom+'%';
return false;
}
</SCRIPT>
</head>
<body>
<div class="tophead">


<script src="/ks_inc/ajax.js" type="text/javascript"> </script>
<!-- published at 2009-10-19 8:52:25 publish by baidu.com -->


上面的代码在
Match Tracer 2.1 和 RegexBuddy 3 中都能用
<link rel="stylesheet"(.*\n)*.*o\.style\.zoom=zoom\+'%' 匹配。

可是经过我的多次测试得出:

只要在红色的两段字符串之间加至少一个换行,在RegexBuddy 3 下立马就不匹配了

注:在 Match Tracer 2.1下依然正常

电脑上装RegexBuddy 的同学可以试一下,,

我的RegexBuddy是最新版本!
罗耗子 2010-02-02
  • 打赏
  • 举报
回复
.*只能所有非空字符,不能匹配回车换行,出现多行就不行
[Quote=引用 18 楼 lcl_data 的回复:]
引用 17 楼 haozi8993 的回复:
仿照着凑了个,效率奇低
  <link rel="stylesheet"(.*\s)*o\.style\.zoom=zoom\+'%';

(.*\s)*太多余了吧
.*就可以的
[/Quote]
十八道胡同 2010-02-02
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 haozi8993 的回复:]
仿照着凑了个,效率奇低
<link rel="stylesheet"(.*\s)*o\.style\.zoom=zoom\+'%';
[/Quote]
(.*\s)*太多余了吧
.*就可以的
罗耗子 2010-02-02
  • 打赏
  • 举报
回复
仿照着凑了个,效率奇低
<link rel="stylesheet"(.*\s)*o\.style\.zoom=zoom\+'%';
十八道胡同 2010-02-02
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 yzx714 的回复:]
目前我见过的最好的正则教材还是小骆驼书的正则部分,比网上那个《正则表达式30分钟入门》好得多,我大概花了40分钟来学习那部分,然后我就发现我算是懂了,以前不会的grep也会了,sed,awk这些也就只需要学习命令行参数了,最重要的是:我终于学会vim的搜索了……………
[/Quote]
c#版版主的lxcnn的blog也不错,他是个正则强人
加载更多回复(15)

64,683

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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