【发布时间】:2013-02-07 17:03:41
【问题描述】:
在 PHPStorm 中,我需要查找/替换一些用于 CSS 类名和 DOM id 的混合大小写字符串。我无法更改 onClick 之类的属性,并且需要保留图像名称。这是我所拥有的:
<div class="ThumbContainer" id="Source-Data4-Thumb">
<div class="ThumbTitleArea">
<div class="DataTitleDiv"> GYR Performance <img src="images/someImage.png" onClick="someFunc()" /></div>
</div>
<div class="dataDetailArea">
<div class="DataThumbArea"> Data Source:Client<br>
Last refreshed:12/05/2013 <br>
Records:206<br>
<br>
Used for the following reports<br>
- GYR Performance<br>
</div>
</div>
</div>
这是我需要的:
<div class="thumb_container" id="source_data4_thumb">
<div class="thumb_title_area">
<div class="data_title_div"> GYR Performance <img src="images/someImage.png" onClick="someFunc()" /></div>
</div>
<div class="data_detail_area">
<div class="data_thumb_area"> Data Source:Client<br>
Last refreshed:12/05/2013 <br>
Records:206<br>
<br>
Used for the following reports<br>
- GYR Performance<br>
</div>
</div>
</div>
注意dataDetailArea 以小写字母开头.. bleh。这将是一次查找/替换,因此不需要在 PHPStorm 中。它甚至可以在任何在线工具中,例如http://gskinner.com/RegExr/
我需要查找/替换的实际主干模板大约有 3100 行代码,否则我会在这里为您提供。
这是我目前所拥有的。好像和Camel-Case3-Foo不匹配:
(class|id|data-[?!=])="\b([A-Za-z][a-z-]*){2,}\b"
【问题讨论】:
-
您使用的是哪个正则表达式? bash、java、c#、vi、emacs、VS2010?有一些区别。
-
抱歉标签不正确。这些似乎是我上一个问题的延续,我没有注意到! :(
-
这是 PHPStorm 查找/替换。我不确定 JetBrains 使用哪个版本。这有帮助吗? jetbrains.com/phpstorm/webhelp/…
-
在执行正则表达式之前,您应该使用 HTML 解析器来分离出类和 id,否则您最终可能会更改标签中的内容。