Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 4618904
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 22, 20262026-05-22T02:21:11+00:00 2026-05-22T02:21:11+00:00

I am aware that regex is not ideal for use with HTML strings and

  • 0

I am aware that regex is not ideal for use with HTML strings and I have looked at the PHP Simple HTML DOM Parser but still believe this is the way to go. All the HTML tags will be generated by my forum software so they will be consistent and valid HTML.

What I am trying to do is make a plugin that will find a list of keywords (or phrases) in a string of HTML and replace them with a link I specify. For example if someone types:

I use Amazon for that.

it would replace it with:

I use <a href="http://www.amazon.com">Amazon</a> for that.

The problem is of course is that if “amazon” is in the URL it would also get replaced. I solved that issue with a callback function found on this site, slightly modified.

But now I still have an issue, it still replaces words between opening and closing tags.

<a href="http://www.amazon.com">My Amazon Link</a>

It will match the “Amazon” in “My Amazon Link”

What I really need is a regex to match say “amazon” anywhere except between <a href and </a>

Any ideas?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-22T02:21:11+00:00Added an answer on May 22, 2026 at 2:21 am

    Using the DOM would certainly be preferable.

    However, you might get away with this:

    $result = preg_replace('%Amazon(?![^<]*</a>)%i', '<a href="http://www.amazon.com">Amazon</a>', $subject);
    

    It matches Amazon only if

    1. it’s not followed by a closing </a> tag,
    2. it’s not itself part of a tag,
    3. there are no intervening tags, i. e. it will be thrown off if tags can be nested inside <a> tags.

    It will therefore change this:

    I use Amazon for that.
    I use <a href="http://www.amazon.com">Amazon</a> for that.
    <a href="http://www.amazon.com">My Amazon Link</a>
    It will match the "Amazon" in "My Amazon Link"
    

    into this:

    I use <a href="http://www.amazon.com">Amazon</a> for that.
    I use <a href="http://www.amazon.com">Amazon</a> for that.
    <a href="http://www.amazon.com">My Amazon Link</a>
    It will match the "<a href="http://www.amazon.com">Amazon</a>" in "My <a href="http://www.amazon.com">Amazon</a> Link"
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I am aware that by default Java does not have the so-called eval (what
I am aware that regEx are common across languages...But I am having trouble in
I aware that this will be a less programming question, but still... How can
I am aware that you can lock an object in c# using lock but
I'm aware that Python 3 fixes a lot of UTF issues, I am not
I am aware that I can Google HTML Form Validation and would get a
I am aware that any Unicode character can be inserted into an HTML document
I'm aware that an ArrayList is probably not the way to go with this
I have a regex that contains a character class followed by TWO cadinality characters
I have an issue where I need to format html that's stored in a

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.