我有很多html文件,一个标签使用了错误的类,我需要替换它们。我可以找到我需要替换的所有标签,但我不确定如何正确地替换它们。
我有这样的事情:
<div id="myDiv" att1="blah" class="classToBeReplaced"> blah </div>
使用^(?=.*myDiv)(?=.*classToBeReplaced).*$
我能找到一切。我想替换为:
<div id="myDiv" att1="blah" class="newClass"> blah </div>
其中一些标签具有不同的属性,具体取决于它们所在的文件。 最好的方法是什么?
答案 0 :(得分:1)
看后面不能有可变长度,因此更容易捕获目标左侧的整条线并将其全部放回后面参考:
Search: ^(<div id="myDiv".*?class=")classToBeReplaced(?="[^<]*</div>)
Replace: $1newClass
请注意,正则表达式的风格可能会使用反斜杠而不是$
作为反向引用,即您可能需要\1newClass
代替。
答案 1 :(得分:1)
在@Bohemian的帮助下,我实际上最终使用的是:
(myDiv.*?)classToBeReplaced(.*?>)
并替换为
$1newClass$2
我在每种情况下都有不同的属性,所以我需要考虑到这一点。
答案 2 :(得分:0)
如果我理解你的问题,你可以这样做:
class="classToBeReplaced"
使用替换字符串:
class="classYouWant"
<强> Working demo 强>
另一方面,如果您只想更换div,可以使用:
(<div id="myDiv".*)"classToBeReplaced
使用替换字符串:
\1"classNEW"
<强> Working demo 强>