PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr (https://www.php-resource.de/forum/)
-   Projekthilfe (https://www.php-resource.de/forum/projekthilfe/)
-   -   Ein Regex für Pekka! (https://www.php-resource.de/forum/projekthilfe/97864-ein-regex-fuer-pekka.html)

pekka 21-10-2009 21:24

Ein Regex für Pekka!
 
Hat jemand Lust, mir einen Regex zu bauen? Wäre mir eine große Hilfe:

Gib aus einem String alle Strings zwischen zwei Gradzeichen (° bzw. \%7D) zurück, bei denen der Abstand zwischen den Gradzeichen kleiner ist als 20 Zeichen.

Also

Zitat:

.. Lorem Ipsum Dolor Sit Amet, °display° Convivium sit amet
=> Match "display"

Zitat:

° .. Lorem Ipsum Dolor Sit Amet, Convivium sit amet°
=> Kein Match

wahsaga 21-10-2009 21:31

Code:

#°([^°]{1,20})°#

pekka 21-10-2009 21:33

Vielen Dank!

Kropff 21-10-2009 21:39

Das gehört ja eigentlich in die Projekthilfe :D. Aber auf die Schnelle:
PHP-Code:

$string_1 '.. Lorem Ipsum Dolor Sit Amet, °display° Convivium sit amet ';
$string_2 '° .. Lorem Ipsum Dolor Sit Amet, Convivium sit amet° ';
preg_match ('/°(\S.*?)°/',$string_1$hits);
print_r($hits);
preg_match ('/°(\S.*?)°/',$string_2$hits);
print_r($hits); 

Peter

pekka 21-10-2009 21:49

Zitat:

Zitat von Kropff (Beitrag 627521)
Das gehört ja eigentlich in die Projekthilfe :D.

Das stimmt, beachte ich beim nächsten Mal.
Ebenfalls vielen Dank!

fireweasel 22-10-2009 19:42

Mist! Zu spät.
Ich hätte den hier vorgeschlagen:

'/°.{0,19}?°/s'

in preg_match_all() verpackt:

PHP-Code:

$haystacks = array (
    
'.. Lorem Ipsum Dolor Sit Amet, °display° Convivium sit amet',
    
'° .. Lorem Ipsum Dolor Sit Amet, Convivium sit amet°',
    
// Mindestabstand (0)
    
'°°',
    
// Maximalabstand (19)
    
"all those who remember the war they won't °forget what they've° seen",
    
// preg_split() waere eine Alternative, falls nicht
    
'°abcd°war-das-so-gewollt?°efgh°',
);

foreach (
$haystacks as $haystack) {
    
$hits preg_match_all(
        
'/(?<=°).{0,19}?(?=°)/s'$haystack$hitsPREG_PATTERN_ORDER
    
) ? $hits[0] : NULL;
    
var_dump($hits);




Alle Zeitangaben in WEZ +2. Es ist jetzt 22:04 Uhr.

Powered by vBulletin® Version 3.8.2 (Deutsch)
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.0
[c] ebiz-consult GmbH & Co. KG