查看: 297|回复: 5
打印 上一主题 下一主题

[求助] 正则表达式求助

[复制链接]

该用户从未签到

14

主题

131

回帖

1459

积分

解元

Rank: 5Rank: 5

积分
1459
跳转到指定楼层
1
发表于 2016-1-10 12:26:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
<div class="C2_word_form"><span><span class="C2_inline_word">takes</span>, <span class="C2_inline_word">taking</span>, <span class="C2_inline_word">took</span>, <span class="C2_inline_word">taken</span></span></div>
<span class="C2_inline_word">taken</span>

能否实现把<div class="C2_word_form">...</div>标签内的 C2_inline_word 替换掉
而<div class="C2_word_form">...</div>标签外的不变
即变成如下:

<div class="C2_word_form"><span><span class="C2_word_form_word">takes</span>, <span class="C2_word_form_word">taking</span>, <span class="C2_word_form_word">took</span>, <span class="C2_word_form_word">taken</span></span></div>
<span class="C2_inline_word">taken</span>

该用户从未签到

2121

主题

2961

回帖

6万

积分

翰林院修撰

不忘初心。送分大人,灌水砖家。擅长抛砖引玉,挖坑不填。

Rank: 12Rank: 12Rank: 12

积分
61056

翰林院专用章灌水大神章笑傲江湖章小蜜蜂章管理组专用章

2
发表于 2016-1-10 16:21:53 | 只看该作者

  1. <div class="C2_word_form">(.+?)C2_inline_word(.+?)</div>
复制代码

替换为
  1. <div class="C2_word_form">\1C2_word_form_word\2</div>
复制代码


点击“Replace All”(替换全部) n 次,直到替换结果为 0 为止。



该用户从未签到

14

主题

131

回帖

1459

积分

解元

Rank: 5Rank: 5

积分
1459
3
 楼主| 发表于 2016-1-10 21:22:43 | 只看该作者
本帖最后由 2011star21cn 于 2016-1-10 21:25 编辑

谢谢O大

不过这个式子没有能达到结果

替换多次后会把<div class="C2_word_form">...</div>外面的C2_inline_word也替换掉

初始代码
<div class="C2_word_form"><span>also <span class="C2_inline_word">twenty-four seven</span></span></div><div class="C2_explanation_box"><span class="C2_explanation_label">[ADV: ADV after v]</span><span class="C2_explanation_content">If something happens <span class="C2_inline_word">24-7</span>, it happens all the time without ever stopping. <span class="C2_inline_word">24-7</span> means twenty-four hours a day, seven days a week.<span class="C2_ex_label_end">[mainly AM, INFORMAL]</span></span></div>

替换后代码
<div class="C2_word_form"><span>also <span class="C2_word_form_word">twenty-four seven</span></span></div><div class="C2_explanation_box"><span class="C2_explanation_label">[ADV: ADV after v]</span><span class="C2_explanation_content">If something happens <span class="C2_word_form_word">24-7</span>, it happens all the time without ever stopping. <span class="C2_word_form_word">24-7</span> means twenty-four hours a day, seven days a week.<span class="C2_ex_label_end">[mainly AM, INFORMAL]</span></span></div>

期望的结果

<div class="C2_word_form"><span>also <span class="C2_word_form_word">twenty-four seven</span></span></div><div class="C2_explanation_box"><span class="C2_explanation_label">[ADV: ADV after v]</span><span class="C2_explanation_content">If something happens <span class="C2_inline_word">24-7</span>, it happens all the time without ever stopping. <span class="C2_inline_word">24-7</span> means twenty-four hours a day, seven days a week.<span class="C2_ex_label_end">[mainly AM, INFORMAL]</span></span></div>

该用户从未签到

20

主题

222

回帖

4029

积分

贡士

Rank: 6Rank: 6

积分
4029

灌水大神章小蜜蜂章笑傲江湖章

4
发表于 2016-1-10 21:51:29 | 只看该作者
如果你只是想要css控制div內跟外的C2_inline_word
要有不同顯示效果,那根本不需要用正則

.C2_inline_word {font-weight:normal;}
C2_word_form .C2_inline_word {font-weight:bold;}

即使都是同一tag,也可以分粗細

该用户从未签到

2121

主题

2961

回帖

6万

积分

翰林院修撰

不忘初心。送分大人,灌水砖家。擅长抛砖引玉,挖坑不填。

Rank: 12Rank: 12Rank: 12

积分
61056

翰林院专用章灌水大神章笑傲江湖章小蜜蜂章管理组专用章

5
发表于 2016-1-10 21:58:38 | 只看该作者
2011star21cn 发表于 2016-1-10 21:22
谢谢O大

不过这个式子没有能达到结果



应该有能一步到位的办法,但是我好久没实战操作了,一时想不出来。
有个曲线救国的办法就是:
1. </div>后面加个换行(</div>全部替换为 </div>\r\n 额,看你用啥文本编辑器,也可能是替换为 </div>\n)
2. 再用我楼上的替换。
3. 有必要的话,再把</div>后面的换行删除。

该用户从未签到

14

主题

131

回帖

1459

积分

解元

Rank: 5Rank: 5

积分
1459
6
 楼主| 发表于 2016-1-10 22:21:47 | 只看该作者
谢二位,今天学了好多!