Go Back   vb.org Archive > vBulletin Modifications > Archive > vB.org Archives > General > Member Archives
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools
Combining 2 preg_replace statements Details »»
Combining 2 preg_replace statements
Version: , by Boofo Boofo is offline
Developer Last Online: Jun 2012 Show Printable Version Email this Page

Version: Unknown Rating:
Released: 03-17-2003 Last Update: Never Installs: 0
 
No support by the author.

Can someone please tell me how I can combine to 2 following statements into one? I need to parse both of them out of the same code but they seem to cancel each other out.

PHP Code:
$reviewmessage trim(preg_replace("/(\[)(sp)(])(\r\n)*(.*)(\[\/sp\])/siU""<br><normalfont>Spoiler:</normalfont><br><font color=\"$backcolor\">\\5</font>"$post[pagetext])); 
and:

PHP Code:
$reviewmessage trim(preg_replace("/(\[)(you)(])/siU"$bbuserinfo[username], $post[pagetext])); 

Show Your Support

  • This modification may not be copied, reproduced or published elsewhere without author's permission.

Comments
  #2  
Old 03-17-2003, 10:23 AM
Zzed's Avatar
Zzed Zzed is offline
 
Join Date: Feb 2002
Location: Glendale, CA, USA
Posts: 463
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

The problem with regex is that you can match patterns with it, but you can't count with them.

The following pattern will do the match: ((.*)*(\[you\])*)*

The problem is that due to the repeating nature of the pattern and the fact that it has sub patterns you can not code a replacement for it.

You may be stuck with the 2 regex's...
Reply With Quote
  #3  
Old 03-17-2003, 10:26 AM
Boofo's Avatar
Boofo Boofo is offline
 
Join Date: Mar 2002
Location: Des Moines, IA (USA)
Posts: 15,776
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I don't mind doing 2, but they cancel each other out. One will work, but not the other. Whichever one comes last seems to work. How do I make then both work?
Reply With Quote
  #4  
Old 03-17-2003, 10:29 AM
Boofo's Avatar
Boofo Boofo is offline
 
Join Date: Mar 2002
Location: Des Moines, IA (USA)
Posts: 15,776
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

You said this would do the match. Is this how it should look (with the siU)?

PHP Code:
$reviewmessage trim(preg_replace("((.*)*(\[you\])*)*"$bbuserinfo[username], $post[pagetext])); 
Reply With Quote
  #5  
Old 03-17-2003, 10:33 AM
Zzed's Avatar
Zzed Zzed is offline
 
Join Date: Feb 2002
Location: Glendale, CA, USA
Posts: 463
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Not sure if I am being picky here but in the second preg_replace you should change the regex

from "/(\[)(you)(])/siU"
to "/(\[)(you)(\])/siU"

I don't see why they would cancel each other out...
Reply With Quote
  #6  
Old 03-17-2003, 10:35 AM
Zzed's Avatar
Zzed Zzed is offline
 
Join Date: Feb 2002
Location: Glendale, CA, USA
Posts: 463
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Today at 04:29 AM Boofo said this in Post #4
You said this would do the match. Is this how it should look (with the siU)?

PHP Code:
$reviewmessage trim(preg_replace("((.*)*(\[you\])*)*"$bbuserinfo[username], $post[pagetext])); 

What I meant was that the regex I gave would replace the (.*) in the first preg_replace and would try to match both patterns in your statements.

But since the replacements need to be done in 2 passes, it is of no help...
Reply With Quote
  #7  
Old 03-17-2003, 10:40 AM
Boofo's Avatar
Boofo Boofo is offline
 
Join Date: Mar 2002
Location: Des Moines, IA (USA)
Posts: 15,776
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Today at 06:33 AM Zzed said this in Post #5
Not sure if I am being picky here but in the second preg_replace you should change the regex

from "/(\[)(you)(])/siU"
to "/(\[)(you)(\])/siU"

I don't see why they would cancel each other out...
They don't cancel each other out. What is happening is that whichever ones comes last is the one that will work. The other one doesn't parse the code. Only the second (or last) one will.
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 07:17 PM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.03828 seconds
  • Memory Usage 2,266KB
  • Queries Executed 20 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (4)bbcode_php
  • (2)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)modsystem_post
  • (1)navbar
  • (6)navbar_link
  • (120)option
  • (7)post_thanks_box
  • (7)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (7)post_thanks_postbit_info
  • (6)postbit
  • (7)postbit_onlinestatus
  • (7)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete