Remove/Change specific Html tags NotePad++
I am trying to remove all tags containing href="#"
Menu "Search" > "Replace" (or Ctrl + H)
Set "Find what" to
<a .*?href="#">(.*?)</a>
Set "Replace with" to
\1
Enable "Regular expression"
-
Click "Replace All"
Before:
<a href="#">leave this text</a>
<a class="" id="" href="#">leave this text too</a>
<a href="http://......">Dont remove this tag!</a>
After:
leave this text
leave this text too
<a href="http://......">Dont remove this tag!</a>
As pointed out by AFH in a comment, there is a better regular expression that will catch expression that were not included in the sample data.
-
Set "Find what" to
<a .*?href="#" .*?>(.*?)</a>
This will match lines where there are clauses after the
href="#"
(and before the first matching>
).Note:
It will fail to work correctly if there are any
>
s in the value field of a subsequent clause (before the>
matching<a
)
Further reading
Related videos on Youtube
Alexandr
Experienced Full Stack Developer with 7 years in the industry and high-level proficiency in the following technologies: PHP, JS, MySQL, expertise with HTML, CSS and Intermediate SEO knowledge
Updated on September 18, 2022Comments
-
Alexandr over 1 year
i have found many similar posts, but non of them answers my question. I would like to replace/remove/change open and close tag with a specific key word. in this case i am trying to remove all tags whit href="#" in it....
<a href="#">leave this text</a> <a class="" id="" href="#">leave this text too</a> <a href="http://......">Dont remove this tag!</a>
I have this code, but i cant figure out how to leave the text...
find: <a[^h]*href="#"[^>]*> (skip content) </a> replace: (same content) or replace: <a href="somthing"> (same content) </a>
-
Admin over 8 yearsBy note++ you mean notepad++?
-
Admin over 8 yearsYes, im sorry. NotePad++
-
Admin over 8 yearsThat was too easy! ;)
-
-
AFH over 8 yearsI can't see any reason why your search string would not have worked with the examples the questioner gave, although his answer below does allow for clauses after the
href
as well as before: for this you would need<a .*?href="#" .*?>(.*?)</a>
. In fact, this should be a better solution, as his would fail if there were another clause containingh
before thehref
(eg in theclass
orid
value). Both would fail if there were>
in the value field of a subsequent clause, and I see no easy fix for this (unlikely) case. -
DavidPostill over 8 yearsMy answer was correct with the data you provided as input. I don't believe the version of Notepad++ will make any difference with this kind of regular expression.
-
DavidPostill over 8 years@AFH Agree with all of the above. However, my answer worked with the data the OP provided as input. I will add a note with your regular expression just for completeness. Thanks for your comment.