regular expression "not match"

Tasos Laskos tasos.laskos at gmail.com
Fri Sep 5 10:46:36 EEST 2008


Θοδωρής Λύτρας wrote:
> Στις Παρ 05 Σεπ 2008, ο/η Michael Iatrou έγραψε:
>> When the date was Friday 05 September 2008, Giorgos Keramidas wrote:
>>> [Προφανώς και υπάρχουν περίπου 6,920,938,463,463,374,607,431,768,211,456
>>> τρόποι να κάνουμε αυτό που θέλει ο Θοδωρής.  Αρκεί να μας πει τι ακριβώς
>>> προσπαθεί να κάνει, αντί να μας προκαλεί να βρούμε "πονηρά" τρυκ για να
>>> δείξουμε πόσο μεγάλη την έχουμε τη regexp library μας.]
>> Χμ, ξαναδιαβάζοντας το αρχικό mail, ίσως τελικά αυτό που θέλει να κάνει
>> είναι από ένα string της μορφής:
>>
>> 	str1{str2}str3{str4}...
>>
>> να πετάξει έξω οτιδήποτε υπάρχει μέσα σε αγκύλες:
>>
>> $ echo 'abcd{efgh}ijkl{xy}z' | perl -ne 'print if s/{[^}]*}//g'
>> abcdijklz
>
> Θέλω να κάνω το ακριβώς αντίθετο, δηλαδή να *κρατήσω* οτιδήποτε υπάρχει μέσα 
> στις αγκύλες και να πετάξω ότι είναι εκτός.
>
> Και θέλω να το κάνω όχι σε Perl, αλλά στα πλαίσια μιας εφαρμογής C++ / Qt4.
>
> Now I know οτι η Qt4 έχει διάφορες συναρτήσεις για να το πετύχω αυτό, αλλά 
> νομίζω οτι ο λιγότερο hairy τρόπος είναι ένα regexp, αν μπορεί να υπάρξει ένα 
> που να κάνει μια τέτοια δουλειά.
>
> Hope this helps...
>
> Θοδωρής
>
PHP example:
-------------------------
<?php

$str = 'abcd{efgh}ijkl{xy}z';

preg_match_all( '~{(.*)}~U', $str, $matches );

print_r( $matches );

?>
------------------------

Esy 8es ayto "~{(.*)}~U", to "U" modifier simenei ungreedy...




More information about the Linux-greek-users mailing list