Remove/Change specific Html tags NotePad++

9,140

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"

    Image

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

Share:
9,140

Related videos on Youtube

Alexandr
Author by

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, 2022

Comments

  • Alexandr
    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
      Admin over 8 years
      By note++ you mean notepad++?
    • Admin
      Admin over 8 years
      Yes, im sorry. NotePad++
    • Admin
      Admin over 8 years
      That was too easy! ;)
  • AFH
    AFH over 8 years
    I 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 containing h before the href (eg in the class or id 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
    DavidPostill over 8 years
    My 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
    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.