f



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"> should 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.

0
cutenfuzzy (260)
10/14/2006 7:33:46 PM
comp.lang.php 32646 articles. 0 followers. Post Follow

2 Replies
737 Views

Similar Articles

[PageSpeed] 39

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"> should 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)?

0
chernyshevsky (2297)
10/15/2006 4:49:56 AM
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"> should 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

0
cutenfuzzy (260)
10/16/2006 5:52:12 PM
Reply: