【发布时间】:2017-10-22 18:29:46
【问题描述】:
当我今天早上醒来时,我对正则表达式一无所知。当我去弥撒时,我已经能够拼凑这个正则表达式来查找 html 文档中出现的“Mph”。
(?i)(?
如果我针对以下测试数据运行它:
<div class="vsMph">
<p>95 Mph</p>
</div>
<div class="vsMph">
<p>95Mph</p>
</div>
正确匹配:
‘ Mph’ and
‘Mph’
同样正确地留下“vsMph”,这正是我想要的。最终,我将使用相同的技术来匹配节、英尺、英寸、公里等。
我正在使用 RegReplace 在 Sublime Text 3 中执行这个表达式,最终,我希望做的是使用这个正则表达式来查找所有出现在空格或数字前面的“Mph”,并且:
- 在
<abbr>标签中包含“Mph”。 - 在数字和数字之间添加一个空格
如果最后一个数字之间没有空格,则打开
<abbr>标签 最初是“英里/小时”。
也就是说,我想把上面的测试数据转换成:
<div class="vsMph">
<p>95 <abbr title="Miles per hour">Mph</abbr></p>
</div>
<div class="vsMph">
<p>95 <abbr title="Miles per hour">Mph</abbr></p>
</div>
我可以让 RegReplace 添加<abbr> 标记,如上面 1. 中所述,但我在 Google 上进行了搜索,但找不到任何告诉我如何有条件地在正则表达式替换中插入空格的信息。
所以我想知道。首先是否可以有条件地在正则表达式替换中添加一个空格,如果可以,我该怎么做,或者我必须搜索“\sMph”和“\dMph”并分别替换它们?
问候。
【问题讨论】:
-
正则表达式替换不能做到这一点。进行两次替换。
标签: regex sublimetext3