Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > C/C++
You last visited: Today at 06:26

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Regex Problem, sucht zu "weit"

Discussion on Regex Problem, sucht zu "weit" within the C/C++ forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Jun 2011
Posts: 225
Received Thanks: 8
Regex Problem, sucht zu "weit"

Hey ich habe einen Teil aus einem Quellcode mittels Regex extrahiert, möchte ich davon einen weiteren Teil extrahieren sucht regex zu "weit"

Quellcode-Ausschnitt:
PHP Code:
<div class='tab tlanes' show='._general'>General</div>
                    <
div class='tab tlanes' show='._top'>Top</div>
                    <
div class='tab tlanes' show='._mid'>Mid</div>
                    <
div class='tab tlanes' show='._jungler'>Jungler</div>
            </
div>
    <
div class='block3 _all'
Wenn ich mit = "<div class='tab tlanes' show='(\\n|.)*'>"; suche will ich dass dieser Teil extrahiert wird:
PHP Code:
[<div class='tab tlanes' show='._general'
jedoch wird einfach der ganze Code extrahiert da am Ende auch ein
PHP Code:
'> 
ist.

Kann ich irgendwie einstellen dass immer das erste "'>" genommen wird und nicht das letzte?
Krabat2 is offline  
Old 08/31/2015, 07:46   #2
 
Kaev <3's Avatar
 
elite*gold: 110
Join Date: Mar 2008
Posts: 856
Received Thanks: 391
Der * macht deinen Regex "greedy". Das kannst du ändern, indem du hinter den Stern ein ? machst.
Müsste somit also so aussehen:
Code:
<div class='tab tlanes' show='(\\n|.)*?'>
Kaev <3 is offline  
Thanks
1 User
Old 08/31/2015, 14:01   #3
 
elite*gold: 0
Join Date: Jun 2011
Posts: 225
Received Thanks: 8
Funktioiert, aber wieso? Das "?" steht ja für 0 oder 1 meines Wissens. Aber es sind ja mehr Zeichen als 1. Erklärung wäre nett hast ein thx
Krabat2 is offline  
Old 08/31/2015, 15:20   #4
 
Padmak's Avatar
 
elite*gold: 58
Join Date: Jun 2008
Posts: 2,311
Received Thanks: 8,420
Nein, wenn das ? hinter einem Zeichen wie "+" (1 oder mehr) oder "*" (0 oder mehr) steht, verändert das den Match-Modus von greedy (Den längst-möglichen Match) zu non-greedy (kurz-möglichster Match)

Padmak
Padmak is offline  
Thanks
1 User
Old 08/31/2015, 17:49   #5
 
.SkyneT.'s Avatar
 
elite*gold: 273
Join Date: Sep 2010
Posts: 1,831
Received Thanks: 786
Ich empfehle dir für diese Aufgaben übrigens einen HTML/XML Parser, da
der Code dadurch viel einfacher zu verstehen und instand zu halten ist.
Empfehlenswert wäre hier libxml2.

Zu dem Thema fällt mir auch noch dieser Post auf stackoverflow ein:

Finde den sehr unterhaltsam
.SkyneT. is offline  
Thanks
1 User
Old 09/01/2015, 16:02   #6
 
elite*gold: 0
Join Date: Aug 2015
Posts: 37
Received Thanks: 3
Quote:
<(?:"[^"]*"['"]*|'[^']*'['"]*|[^'">])+(?<!/\s*)>
Try this
FiddleRust is offline  
Reply


Similar Threads Similar Threads
In wie weit unterscheidet sich "Philosophie" von "Physik"?
05/25/2013 - Off Topic - 8 Replies
In wie weit unterscheidet sich "Philosophie" von "Physik"? was sagt ihr e*PvP?



All times are GMT +1. The time now is 06:28.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.