Regex rep = new Regex(" (src|href|background|value)=('|\"|)([^('|\"|)http://].*?)('|\"| |>)"); 正则怎么理解啊 Regex rep = new Regex(" (src|href|background|value)=('|\"|)([^('|\"|)http://].*?)('|\"| |>)"); 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 正则表达式是一种语言 简单的可以参考http://msdn2.microsoft.com/en-us/library/hs600312.aspx还有专门一本书讲这个的 可以去网上搜搜Oreilly.Mastering.Regular.Expressions (src|href|background|value)=('|\"|)([^('|\"|)http://].*?)('|\"| |>)(src|href|background|value) 这是“或”的关系,“src”,“href”,“background”,“value”中的任意一个= 普通字符('|\"|) 也是“或”的关系,'或"或者没有,但一般不这样写[^('|\"|)http://] 这个是错误写法,[]不能这样用使用方括号 [ ] 包含一系列字符,能够匹配其中任意一个字符。用 [^ ] 包含一系列字符,则能够匹配其中字符之外的任意一个字符。同样的道理,虽然可以匹配其中任意一个,但是只能是一个,不是多个。.*? 非贪婪模式,匹配附换行符外的任意多个字符就整个正则表达式来说,这种写法是错误的 晕 就分析这个 lxcnn(过客) 说的不错 只是这个那个地方错了 呢我觉的也不怎么对 ,但这是一个开源用的 主要是)=('|\"|)([^('|\"|)http://].*?)('|\"| |>)"); 这个地方不理解 就是“=”后分三种情况,“'”,“"”和直接接网址按([^('|\"|)http://].*?)的字面意义就是,不是以“http://”开头的网址 接着还有这个 sourceString = rep.Replace(sourceString," $1=$2" + replaceURL + "$3$4"); $1=$2 和 $3$4 怎么理解呢 按这个正则字面理解的意义来说,这个正则可以这样写Regex rep = new Regex(@"(src|href|background|value)=(['""])?((?!http://)[^'""\s]*?)(\2|\s|>)");可以匹配的内容举例如下src="www.baidu.com/1.jpg"src='www.baidu.com/1.jpg'src=www.baidu.com/1.jpg $加一个数字表示对捕获组的引用捕获组(exp)指把正则表达式exp匹配到的内容捕获到一个组里,如果这个组没有命名,可以用$加上数字对其引用,$0指全部匹配结果,$1对应第一个“(”及与其配对的“)”之间的正则表达式匹配到的内容,$2同理,可以嵌套,按“(”出现的顺序确定捕获组的序号上式中$1对应 (src|href|background|value)$2对应 ('|\"|)$3对应 ([^('|\"|)http://].*?)$4对应 ('|\"| |>) 用VS做的程序是不是必须在.net framework框架下运行? 求Excel 中 slope函数的算法 如何通过Ajax下载文件 求助,如何不让C#窗口移动 使用泛型的问题 C# 用户管理模块 源码 调用WebClient.UploadFile(@"c:\1.txt","file:///E:/") 上传文件, 报"对路径“E:\”的访问被拒绝"的异常 树的遍历问题。 怎样把MultiSelectTreeView捆绑到数据库.郁闷 虚方法的使用? [100分] 菜鸟有问 ,怎样编写代码才能发挥出多核心芯片的性能,之类的吧 散点小分 顺便给点意见
简单的可以参考http://msdn2.microsoft.com/en-us/library/hs600312.aspx还有专门一本书讲这个的 可以去网上搜搜Oreilly.Mastering.Regular.Expressions
= 普通字符
('|\"|) 也是“或”的关系,'或"或者没有,但一般不这样写
[^('|\"|)http://] 这个是错误写法,[]不能这样用
使用方括号 [ ] 包含一系列字符,能够匹配其中任意一个字符。用 [^ ] 包含一系列字符,则能够匹配其中字符之外的任意一个字符。同样的道理,虽然可以匹配其中任意一个,但是只能是一个,不是多个。.*? 非贪婪模式,匹配附换行符外的任意多个字符
就整个正则表达式来说,这种写法是错误的
我觉的也不怎么对 ,但这是一个开源用的
主要是)=('|\"|)([^('|\"|)http://].*?)('|\"| |>)"); 这个地方不理解
按([^('|\"|)http://].*?)的字面意义就是,不是以“http://”开头的网址
src="www.baidu.com/1.jpg"
src='www.baidu.com/1.jpg'
src=www.baidu.com/1.jpg
$1对应 (src|href|background|value)
$2对应 ('|\"|)
$3对应 ([^('|\"|)http://].*?)
$4对应 ('|\"| |>)