问题描述
需要匹配的字符串:<pstyle="MARGIN:0cm0cm0pt"><spanstyle="FONT-SIZE:24px"><spanstyle="width:100px">???</span></span></p>采用的正则表达式:1:<[^>]*?[^>]*?style=(")[^1]*?(?=width)[^1]*?1[^>]*?>结果:<pstyle="MARGIN:0cm0cm0pt"><spanstyle="FONT-SIZE:24px"><spanstyle="width:100px">2:<[^>]*?[^>]*?style=(")[^"]*?(?=width)[^1]*?1[^>]*?>结果:<spanstyle="width:100px">1分组好像没有起到作用很奇怪,请各位高手指点
解决方案
解决方案二:
规则呢只给一个样本,谁知道你到底要按什么规则匹配比如<pstyle="MARGIN:0cm0cm0pt">这个是要完全匹配,还是带style就行,前面是否必须是<p,后面0cm里的0是否可以变成1cm?这些都不知道,谈什么正则
解决方案三:
<pstyle="MARGIN:0cm0cm0pt"><spanstyle="FONT-SIZE:24px"><spanstyle="width:100px">???</span></span></p>如果只是???的部分可以变,其他的部分都是限定的,必须完全匹配的整个都写死在正则表达式里不就好了,加那么多通配符干啥
解决方案四:
看不明白你想匹配什么内容
解决方案五:
怎么个分组,想实现什么?能说清楚些不?
解决方案六:
你想匹配什么呢?
解决方案七:
可能我没有表述清楚:再举个例子:原字符串:<pstyle="MARGIN:0cm0cm0pt"><spanstyle="FONT-SIZE:24px"><spanstyle="width:100px">???</span></span></p><pstyle='MARGIN:0cm0cm0pt'><spanstyle='FONT-SIZE:24px'><spanstyle='width:100px'>???</span></span></p>需要匹配<spanstyle="width:100px">和<spanstyle='width:100px'>采用的正则表达式:<[^>]*?[^>]*?style=(['"])[^1]*?(?=width)width[^1]*?1[^>]*?>?结果:<pstyle="MARGIN:0cm0cm0pt"><spanstyle="FONT-SIZE:24px"><spanstyle="width:100px">和<pstyle='MARGIN:0cm0cm0pt'><spanstyle='FONT-SIZE:24px'><spanstyle='width:100px'>这个怎么弄?其实也想搞清楚原来例子中的1为何不起作用!!
解决方案八:
不好意思:采用的正则表达式:<[^>]*?[^>]*?style=(['"])[^1]*?(?=width)width[^1]*?1[^>]*?>原多了个?。
解决方案九:
strings=@"<pstyle=""MARGIN:0cm0cm0pt""><spanstyle=""FONT-SIZE:24px""><spanstyle=""width:100px"">???</span></span></p><pstyle='MARGIN:0cm0cm0pt'><spanstyle='FONT-SIZE:24px'><spanstyle='width:100px'>???</span></span></p>";MatchCollectionmc=Regex.Matches(s,@"(?i)<spansstyle=(['""])width:d+px1>");foreach(Matchminmc){Console.WriteLine(m.Value);}