在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"
答案 0 :(得分:2)
此正则表达式应找到应放置下划线的位置:
((?<=\w)(?=[A-Z])|-)
使用此替换来插入下划线似乎是有意义的,然后将字符串转换为小写。
答案 1 :(得分:0)
我会搜索这样的东西:
"[a-z0-9_]*\([A-Z]\)
后面带有小写,数字或下划线字符的引号。 之后的任何内容都有一个大写字母。 使大写字母子表达式为1。
用下划线替换子表达式1 + tolower()函数的结果。
您需要多次对每一行应用此项,因为它只会找到一行 每次通过大写字母。