Can't seem to create a simple pattern matching function due to character than won't allow me to escape it.

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Daz

    Can't seem to create a simple pattern matching function due to character than won't allow me to escape it.

    Hi everyone. I am looking to create a simple function that will spot a
    hexcolor in a font tag, that has quotes, and remove the quotes. i.e
    <font color="ffffff"s hould become <font color=ffffff>.

    Perhaps I am making it more complex than it needs to be, but I have
    broken down the input string into an array of single characters using
    preg_split(), and I am iterating through the chars, looking for a quote
    followed by a hash. The problem appear to be with the hash. Although it
    prints out fine, not amount of escaping the hash seems to allow me to
    match it. Instead preg_match() match spaces (obviously because the
    veriable I am using to store the '#', is not storing it properly.

    Please could someone put me out of my misery by either hinting towards
    a simpler way to do it, or just shooting me?

    I am sure there are at least 100 different ways of using regex to
    achieve what I want, but I can't think how. Perhaps I am just looking
    at the wrong functions?

    Many thanks.

    Daz.

  • Chung Leong

    #2
    Re: Can't seem to create a simple pattern matching function due to character than won't allow me to escape it.

    Daz wrote:
    Hi everyone. I am looking to create a simple function that will spot a
    hexcolor in a font tag, that has quotes, and remove the quotes. i.e
    <font color="ffffff"s hould become <font color=ffffff>.
    >
    Perhaps I am making it more complex than it needs to be, but I have
    broken down the input string into an array of single characters using
    preg_split(), and I am iterating through the chars, looking for a quote
    followed by a hash. The problem appear to be with the hash. Although it
    prints out fine, not amount of escaping the hash seems to allow me to
    match it. Instead preg_match() match spaces (obviously because the
    veriable I am using to store the '#', is not storing it properly.
    >
    Please could someone put me out of my misery by either hinting towards
    a simpler way to do it, or just shooting me?
    >
    I am sure there are at least 100 different ways of using regex to
    achieve what I want, but I can't think how. Perhaps I am just looking
    at the wrong functions?
    >
    Many thanks.
    >
    Daz.
    Why not just preg_replace('/(<font\s+color\ s*=\s*)"(#[0-9a-f]+)"/si',
    '\1\2', $html)?

    Comment

    • Daz

      #3
      Re: Can't seem to create a simple pattern matching function due to character than won't allow me to escape it.


      Chung Leong wrote:
      Daz wrote:
      Hi everyone. I am looking to create a simple function that will spot a
      hexcolor in a font tag, that has quotes, and remove the quotes. i.e
      <font color="ffffff"s hould become <font color=ffffff>.

      Perhaps I am making it more complex than it needs to be, but I have
      broken down the input string into an array of single characters using
      preg_split(), and I am iterating through the chars, looking for a quote
      followed by a hash. The problem appear to be with the hash. Although it
      prints out fine, not amount of escaping the hash seems to allow me to
      match it. Instead preg_match() match spaces (obviously because the
      veriable I am using to store the '#', is not storing it properly.

      Please could someone put me out of my misery by either hinting towards
      a simpler way to do it, or just shooting me?

      I am sure there are at least 100 different ways of using regex to
      achieve what I want, but I can't think how. Perhaps I am just looking
      at the wrong functions?

      Many thanks.

      Daz.
      >
      Why not just preg_replace('/(<font\s+color\ s*=\s*)"(#[0-9a-f]+)"/si',
      '\1\2', $html)?
      Because I forgot how to get the matched text from the regex pattern
      match. Hehe.

      Many thanks for that. :)

      Daz

      Comment

      Working...