我有一个JS正则表达式来替换在p标签内包含img标签的字符串部分。我要捡那些我不想要的东西。
我要查找和替换的示例(src和类并非总是相同的顺序,而imageData并不总是相同的base64“数字”,因此我不能仅对整个字符串进行匹配):< / p>
<p><img class="classIWantToMatch" src="data:image/gif;base64,dataForImage"></p>
<p><img src="data:image/gif;base64,imageData" class="classIWantToMatch" ></p>
也可以找到并替换的样本(但我不想这么做):
<p><img src="/myFiles/my.PNG" alt=""></p>
正则表达式:
/(<p><img).*?(class="classIWantToMatch").*?(<\/p>)/g
我正在尝试先行后顾,但似乎无法使其达到我想要的效果。
除了老式的谷歌搜索,我还在这里尝试过:
A Regex that search for lines that contains a string, and not contains another string
Using Regex to find string that contains one string and excludes a second string?
以及其他几个。我想我只是不明白向前/向后。
答案 0 :(得分:0)
This RegEx可能会帮助您仅获得所需的目标或设计一个表达式来实现:
(<p><img.+class=\")(classIWantToMatch)(\".+<\/p>)
(<p><img.+class=\")
和右边界为(\".+<\/p>)
,您可能会这样做。但是,为了安全起见,您可能会考虑对这些边界进行更严格的限制。例如,.+
可以非常限于一个字符列表。