not understanding pattern matching [message #178609] |
Wed, 11 July 2012 22:35 |
Michael Joel
Messages: 42 Registered: October 2011
Karma: 0
|
Member |
|
|
I am wanting to change words in a string that has special tags.
Ex. "This is a %/i%special%i% word in the string."
If I want to replace any word between the %/i% and %i% what would I do?
I messed with preg_repace but I couldn't understand the pattern system.
Mike
|
|
|
Re: not understanding pattern matching [message #178610 is a reply to message #178609] |
Wed, 11 July 2012 22:49 |
Michael Fesser
Messages: 215 Registered: September 2010
Karma: 0
|
Senior Member |
|
|
.oO(Michael Joel)
> I am wanting to change words in a string that has special tags.
> Ex. "This is a %/i%special%i% word in the string."
> If I want to replace any word between the %/i% and %i% what would I do?
>
> I messed with preg_repace but I couldn't understand the pattern system.
What have you tried so far? Do you have any experiences with regular
expressions?
Micha
--
http://mfesser.de/
Fotos | Blog | Flohmarkt
|
|
|
Re: not understanding pattern matching [message #178611 is a reply to message #178610] |
Wed, 11 July 2012 23:11 |
Michael Joel
Messages: 42 Registered: October 2011
Karma: 0
|
Member |
|
|
Michael Fesser wrote:
> .oO(Michael Joel)
>
>
>> I am wanting to change words in a string that has special tags.
>> Ex. "This is a %/i%special%i% word in the string."
>> If I want to replace any word between the %/i% and %i% what would I do?
>>
>> I messed with preg_repace but I couldn't understand the pattern system.
>
>
> What have you tried so far? Do you have any experiences with regular
> expressions?
>
> Micha
>
I have tried many things but all return errors - mostly "unknown modifier".
Mike
|
|
|
Re: not understanding pattern matching [message #178612 is a reply to message #178610] |
Wed, 11 July 2012 23:11 |
Michael Joel
Messages: 42 Registered: October 2011
Karma: 0
|
Member |
|
|
Michael Fesser wrote:
> .oO(Michael Joel)
>
>
>> I am wanting to change words in a string that has special tags.
>> Ex. "This is a %/i%special%i% word in the string."
>> If I want to replace any word between the %/i% and %i% what would I do?
>>
>> I messed with preg_repace but I couldn't understand the pattern system.
>
>
> What have you tried so far? Do you have any experiences with regular
> expressions?
>
> Micha
>
answer to your last question - No
|
|
|
Re: not understanding pattern matching [message #178613 is a reply to message #178611] |
Wed, 11 July 2012 23:26 |
Michael Fesser
Messages: 215 Registered: September 2010
Karma: 0
|
Senior Member |
|
|
.oO(Michael Joel)
> Michael Fesser wrote:
>
>> .oO(Michael Joel)
>>
>>
>>> I am wanting to change words in a string that has special tags.
>>> Ex. "This is a %/i%special%i% word in the string."
>>> If I want to replace any word between the %/i% and %i% what would I do?
>>>
>>> I messed with preg_repace but I couldn't understand the pattern system.
>>
>>
>> What have you tried so far? Do you have any experiences with regular
>> expressions?
>>
>> Micha
>>
>
> I have tried many things but all return errors - mostly "unknown modifier".
Which means syntax error.
Please post your code.
Micha
--
http://mfesser.de/
Fotos | Blog | Flohmarkt
|
|
|
Re: not understanding pattern matching [message #178614 is a reply to message #178613] |
Wed, 11 July 2012 23:31 |
Michael Joel
Messages: 42 Registered: October 2011
Karma: 0
|
Member |
|
|
Michael Fesser wrote:
> .oO(Michael Joel)
>
>
>> Michael Fesser wrote:
>>
>>
>>> .oO(Michael Joel)
>>>
>>>
>>>
>>>> I am wanting to change words in a string that has special tags.
>>>> Ex. "This is a %/i%special%i% word in the string."
>>>> If I want to replace any word between the %/i% and %i% what would I do?
>>>>
>>>> I messed with preg_repace but I couldn't understand the pattern system.
>>>
>>>
>>> What have you tried so far? Do you have any experiences with regular
>>> expressions?
>>>
>>> Micha
>>>
>>
>> I have tried many things but all return errors - mostly "unknown modifier".
>
>
> Which means syntax error.
>
> Please post your code.
>
> Micha
>
I was trying to just first get it to replace the exact thing typed. Then
move on to replacing any word within the %/i% and %i%
$Scripture="this is a %/i%test%i%";
preg_replace("%/i%test%i%","XXXXXXXX",$Scripture);
This errors with Unknown modifier t
I tried what I thought was escaping it by putting a \test but that just
messes up more. See I haven't a clue.
Mike
|
|
|
Re: not understanding pattern matching [message #178615 is a reply to message #178614] |
Thu, 12 July 2012 01:32 |
BootNic
Messages: 10 Registered: November 2010
Karma: 0
|
Junior Member |
|
|
In article <V5KdnVyG6ph9kWPSnZ2dnUVZ_uWdnZ2d(at)earthlink(dot)com>,
Michael Joel <null(at)void(dot)void> wrote:
> Michael Fesser wrote:
>>
>> .oO(Michael Joel)
>>>
>>> Michael Fesser wrote:
>>>>
>>>> .oO(Michael Joel)
>>>> >
>>>> > I am wanting to change words in a string that has special tags.
>>>> > Ex. "This is a %/i%special%i% word in the string."
>>>> > If I want to replace any word between the %/i% and %i% what would I do?
>>>> >
>>>> > I messed with preg_repace but I couldn't understand the pattern system.
>>>>
>>>> What have you tried so far? Do you have any experiences with regular
>>>> expressions?
>>>
>>> I have tried many things but all return errors - mostly "unknown modifier".
>>
>> Which means syntax error.
>>
>> Please post your code.
>
> I was trying to just first get it to replace the exact thing typed. Then
> move on to replacing any word within the %/i% and %i%
>
> $Scripture="this is a %/i%test%i%";
> preg_replace("%/i%test%i%","XXXXXXXX",$Scripture);
http://php.net/manual/en/regexp.reference.delimiters.php
preg_replace("#%/i%test%i%#","XXXXXXXX",$Scripture);
> This errors with Unknown modifier t
> I tried what I thought was escaping it by putting a \test but that just
> messes up more. See I haven't a clue.
--
BootNic Wed Jul 11, 2012 09:32 pm
When I was young, I was put in a school for retarded kids for two years before
they realized I actually had a hearing loss...and they called ME slow!
*Kathy Buckley*
|
|
|
Re: not understanding pattern matching [message #178616 is a reply to message #178609] |
Thu, 12 July 2012 03:27 |
Michael Joel
Messages: 42 Registered: October 2011
Karma: 0
|
Member |
|
|
Michael Joel wrote:
> I am wanting to change words in a string that has special tags.
> Ex. "This is a %/i%special%i% word in the string."
> If I want to replace any word between the %/i% and %i% what would I do?
>
> I messed with preg_repace but I couldn't understand the pattern system.
>
> Mike
Since this function seems to elude me I simply wrote a samll function to
do what I want. I simply pass it the two needles, haystack and what I
want to replace with.
Thanks
Mike
|
|
|
Re: not understanding pattern matching [message #178620 is a reply to message #178614] |
Fri, 13 July 2012 03:22 |
Denis McMahon
Messages: 634 Registered: September 2010
Karma: 0
|
Senior Member |
|
|
On Wed, 11 Jul 2012 19:31:12 -0400, Michael Joel wrote:
> I was trying to just first get it to replace the exact thing typed. Then
> move on to replacing any word within the %/i% and %i%
>
> $Scripture="this is a %/i%test%i%";
> preg_replace("%/i%test%i%","XXXXXXXX",$Scripture);
>
> This errors with Unknown modifier t I tried what I thought was escaping
> it by putting a \test but that just messes up more. See I haven't a
> clue.
http://php.net/manual/en/regexp.reference.delimiters.php
When you use a regex, the first character inside your quotes is taken as
the pattern delimiter.
In your case, this is a "%" character.
The format of a regex string is:
"delimiter pattern delimiter optional-modifiers"
Hence, "%/i%t" is the pattern "/i" with the modifier "t"
Try:
preg_replace("!%/i%test%i%!","XXXXXXXX",$Scripture);
This will use the "!" character as the pattern delimiter and should, in
this specific case, solve your problem. Generally it's a good idea to
pick a pattern delimiter that does not have special meaning to regex and
is not part of your data. This isn't always easy.
Rgds
Denis McMahon
|
|
|