首页 新闻 赞助 找找看

怎么拿到 包含这个vertical-align:super 这个属性的 super 和 数字 1 已经提取为字符串了

0
悬赏园豆:20 [已解决问题] 解决于 2013-03-10 09:45

<span style="background-color:#ffffff; font-family:'Times New Roman'; font-size:6.67pt; vertical-align:super">1</span>

怎么用那个正则表达式拿到   包含这个vertical-align:super 这个属性的  super  和 数字  1 

 

其中1  可能不一样的 如: 2 ,s,4,m  等什么的   属性也要拿到  super  也可能不一样的 

 

随便用什么方式  只要拿到这个属性值  和   值  就行

考虑到五岁的限制的主页 考虑到五岁的限制 | 初学一级 | 园豆:53
提问于:2013-03-06 18:59
< >
分享
最佳答案
0
//取 supper 内容
string verticalText=Regex.Replace(text,@"<(?<t>\w+).*?style=\".*?(vertical-align:(\w+)(?=[;|\"])).*?\">.*?</\k<t>>","$2");
// 取标签内内容: 1、2、s 什么的
string numberOrstr=Regex.Replace(text,@"<(?<t>\w+).*?>(.*?)</\k<t>>","$1");
收获园豆:20
Yu | 专家六级 |园豆:12980 | 2013-03-06 22:58

前面一个拿到了,后面那个拿不到啊 (那个我提取的html为字符串了,好长的)  ,   $0也拿不到那个html   所以后面的东西拿不到啊

考虑到五岁的限制 | 园豆:53 (初学一级) | 2013-03-07 09:49

@月下诗: 你要指定标签的吗? 我给你那个是取任意标签的文本:123, 如<a>123</a>, <div>123</div>,<span>123</span>

Yu | 园豆:12980 (专家六级) | 2013-03-07 10:24

@Yu: 上面那个只是可以提取supper而已啊 ,我还要里面的1 什么的  拿不到   ,可不可以  把该字符串<span id="test" style="background-color:#ffffff; font-family:'Times New Roman'; font-size:6.67pt; vertical-align:super">1</span>也拿到  ,

考虑到五岁的限制 | 园豆:53 (初学一级) | 2013-03-07 10:32

@月下诗: 我提供给你的正则都可以拿到你想要的数据

Yu | 园豆:12980 (专家六级) | 2013-03-07 10:37

@Yu: 关键是在程序里拿不到啊,用那个什么软件是可以的,程序里面全部的html都变成了$0了,后面的就拿不到了啊 

考虑到五岁的限制 | 园豆:53 (初学一级) | 2013-03-07 10:40

@月下诗: html都变成了$0?

代码贴出来吧

Yu | 园豆:12980 (专家六级) | 2013-03-07 10:45

@Yu: 我单步运行了,没有拿到那个最外面的

考虑到五岁的限制 | 园豆:53 (初学一级) | 2013-03-07 10:48

@月下诗: 不能设置为$0的 没有这个参数

如果你想要取 <span>...</span>

<(?<t>span).*?>(.*?)</\k<t>>

Yu | 园豆:12980 (专家六级) | 2013-03-07 10:53

@Yu: 这样也拿不到啊,拿到的是全部了的

考虑到五岁的限制 | 园豆:53 (初学一级) | 2013-03-07 11:12

@月下诗: superOrSub 不是你要拿的吗? (你所说的:其中1  可能不一样的 如: 2 ,s,4,m  等什么的)

Yu | 园豆:12980 (专家六级) | 2013-03-07 11:20

@Yu: 是啊  但是<(?<t>span).*?>(.*?)</\k<t>> 拿到了全部的span了啊,我要替换外面的那个啊,要加什么上标下标什么的,那个不替换的话,后面就灭有意义了

考虑到五岁的限制 | 园豆:53 (初学一级) | 2013-03-07 11:24

@月下诗: 外面的那个,是什么?

Yu | 园豆:12980 (专家六级) | 2013-03-07 11:27

@Yu: <span id="test" style="background-color:#ffffff; font-family:'Times New Roman'; font-size:6.67pt; vertical-align:super">1</span> 这个标签  span可能不一样

考虑到五岁的限制 | 园豆:53 (初学一级) | 2013-03-07 11:29

@月下诗: 

如果是这达不到你要的,那你要说明一下的需求,具体点

 

还有最好,你先理解一下 正则的意义, 这样你会很好写的

Yu | 园豆:12980 (专家六级) | 2013-03-07 11:35

@Yu:把这个标签 <span id="test" style="background-color:#ffffff; font-family:'Times New Roman'; font-size:6.67pt; vertical-align:super">1</span> 里面的数字(1)1是要提取出来处理的,然后 在把这个标签替换成<span id="test" style="background-color:#ffffff; font-family:'Times New Roman'; font-size:6.67pt; vertical-align:super">1</span>  【 (处理过后的1)】

考虑到五岁的限制 | 园豆:53 (初学一级) | 2013-03-07 11:41

@月下诗: 

 

Regex.Replace(spanHtml,@"(<(?<t>\w+).*?style=\".*?(vertical-align:(\w+)(?=[;|\"])).*?\">).*?(</\k<t>>)","$1"+supperOrSub+"$4");

Yu | 园豆:12980 (专家六级) | 2013-03-07 11:47

@Yu: 把这个标签 <span id="test" style="background-color:#ffffff; font-family:'Times New Roman'; font-size:6.67pt; vertical-align:super">1</span> 里面的数字(1)1是要提取出来处理的,然后 在把这个标签<span id="test" style="background-color:#ffffff; font-family:'Times New Roman'; font-size:6.67pt; vertical-align:super">1</span>替换成 【 (处理过后的1)】   那个   还要super  来判断   

考虑到五岁的限制 | 园豆:53 (初学一级) | 2013-03-07 11:54

@Yu: 高手,讲话啊 

考虑到五岁的限制 | 园豆:53 (初学一级) | 2013-03-07 12:38

@月下诗: 你不是已经用 verticalText 在判断了吗

Yu | 园豆:12980 (专家六级) | 2013-03-07 12:44

@Yu:就是这个拿不到嘛 <span id="test" style="background-color:#ffffff; font-family:'Times New Roman'; font-size:6.67pt; vertical-align:super">1</span>

考虑到五岁的限制 | 园豆:53 (初学一级) | 2013-03-07 12:54

@月下诗: 可以的

消化一下表达式吧

Yu | 园豆:12980 (专家六级) | 2013-03-07 13:02

@Yu: 高手在不在啊 ,那个正则模糊匹配了 怎么回事?

考虑到五岁的限制 | 园豆:53 (初学一级) | 2013-03-08 13:03

@月下诗: 最后个*后面加个?

Yu | 园豆:12980 (专家六级) | 2013-03-08 13:55

@Yu: 还是一样啊  中间的很多的span 都匹配了啊 

考虑到五岁的限制 | 园豆:53 (初学一级) | 2013-03-08 14:02

@月下诗: 

把 源文本和表达式贴出来

Yu | 园豆:12980 (专家六级) | 2013-03-08 14:05

@Yu:就是一个html文件  (html文件上传不了) 去里面包含  vertical-align 这个属性的标签    如:<span id="test" style="background-color:#ffffff; font-family:'Times New Roman'; font-size:6.67pt; vertical-align:super">1</span>这个文件

考虑到五岁的限制 | 园豆:53 (初学一级) | 2013-03-08 15:23

@月下诗: 

表达式呢?

Yu | 园豆:12980 (专家六级) | 2013-03-08 16:12

@Yu: <(?<HtmlTag>[\w]+)[^>]*\sstyle=(?<Quote>[""']?).*?vertical-align:super(?(Quote)\k<Quote>)[""']?[^>]*>((?<Nested><\k<HtmlTag>[^>]*>)|</\k<HtmlTag>>(?<-Nested>)|.*?)*?</\k<HtmlTag>>

考虑到五岁的限制 | 园豆:53 (初学一级) | 2013-03-08 16:41

@月下诗: 

 

<(?<HtmlTag>[\w]+)[^>]*\sstyle=(?<Quote>[""']?).*?(vertical-align:super)?(?(Quote)\k<Quote>)[""']?[^>]*>((?<Nested><\k<HtmlTag>[^>]*>)|</\k<HtmlTag>>(?<-Nested>)|.*?)*?</\k<HtmlTag>>

Yu | 园豆:12980 (专家六级) | 2013-03-08 17:24

@Yu: 

如果要只匹配有 vertical-align:super 的 span, 就用下面这个

<(?<HtmlTag>[\w]+)[^>]*\sstyle=(?<Quote>[""']?)[^>]*vertical-align:super(?(Quote)\k<Quote>)[""']?[^>]*>((?<Nested><\k<HtmlTag>[^>]*>)|</\k<HtmlTag>>(?<-Nested>)|.*?)*?</\k<HtmlTag>>

Yu | 园豆:12980 (专家六级) | 2013-03-08 17:30

@Yu: 谢谢啦,高手!!!昨天很忙,没有时间结贴了

考虑到五岁的限制 | 园豆:53 (初学一级) | 2013-03-10 09:44
其他回答(2)
0

1、下载个 jQuery  引用到页面

你那个给个ID(class也行)

<span id="test" style="background-color:#ffffff; font-family:'Times New Roman'; font-size:6.67pt; vertical-align:super">1</span>

$("#test").css("vertical-align")  就是你要的super  

2、用js

document.getElementById("test").style.verticalAlign

就是你要的super  

taoyuqiong | 园豆:210 (菜鸟二级) | 2013-03-06 21:04

那个我提取了整个的html 了,我要判断里面的某些东西

支持(0) 反对(0) 考虑到五岁的限制 | 园豆:53 (初学一级) | 2013-03-06 21:53
0

不用正则不行吗?

$("span").innerHTML() 可以拿到 1

$("span").css("vertical-align") 可以拿到 super

Invictus | 园豆:76 (初学一级) | 2013-03-07 08:41

那个东西已经提取为字符串了,要是前台的话,我知道怎么拿的

支持(0) 反对(0) 考虑到五岁的限制 | 园豆:53 (初学一级) | 2013-03-07 09:08

@月下诗: 这个。。。你请教二楼估计有戏

支持(0) 反对(0) Invictus | 园豆:76 (初学一级) | 2013-03-07 09:30
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册