- 
Path: news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.onet.pl!not-for-mail
From: Paweł Kierski <n...@p...net>
Newsgroups: pl.comp.programming
Subject: regexp - jak napisać źle i co z tego wynika
Date: Thu, 21 May 2009 11:04:12 +0200
Organization: http://onet.pl
Lines: 75
Message-ID: <gv35ej$bt1$1@news.onet.pl>
Reply-To: n...@p...net
NNTP-Posting-Host: 91.197.12.14
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-Trace: news.onet.pl 1242896659 12193 91.197.12.14 (21 May 2009 09:04:19 GMT)
X-Complaints-To: n...@o...pl
NNTP-Posting-Date: Thu, 21 May 2009 09:04:19 +0000 (UTC)
User-Agent: Mozilla-Thunderbird 2.0.0.0 (X11/20070601)
Xref: news-archive.icm.edu.pl pl.comp.programming:182080
[ ukryj nagłówki ]"Trochę" "upojnego" debugowania doprowadziło mnie do znalezienia
błędu, który został popełniony przy pisaniu regexpa. Oryginalny był
baaardzo długi i skomplikowany, tu pokażę samo "mięsko".
W założeniu miał łapać sekwencję:
("wyraz" jeden lub więcej razy, "separator") jeden lub więcej razy,
napis "xyz". "wyraz" to literki, "separator" to kropka lub podkreślenie.
No i napisano:
([A-z]+[._])+xyz
Po czym regexp trafił na długi ciąg podkreśleń i... zawisł. Tu dam
spoiler, gdyby ktoś chciał samodzielnie pokombinować 8-)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
[A-z] to miał być skrót [A-Za-z] (tak można, użyć klas znaków, ale
komuś się nie chciało zajrzeć do dokumentacji). Niestety [A-z] to
[A-Z\[\\\]\^_`a-z] (znaki "[\]^_`" oprócz liter). Dla przypadku szukania
w ciągu podkreśleń można całe wyrażenie zredukować do: "(_+_)+xyz".
Automat próbuje:
- _+ dopasowało się do całego ciągu (zachłannie), ale ciąg się skończył
- _+ dopasowało się do całego ciągu -1 znak, _ dopasowało się do
ostaniego _, ale nie ma xyz
- _+ dopasowało się do całego ciągu -2 znaki, _ dopasowało się do
przedostaniego _, próbujmy jeszcze raz z _+ - dopasowało się, ale nie
ma _
- _+ dopasowało się do całego ciągu -3 znaki, _ dopasowało się do
_ 2 znaki od końca, próbujmy jeszcze raz z _+ - dopasowało się do
dwóch _ z końca, ale nie ma _
- _+ dopasowało się do całego ciągu -3 znaki, _ dopasowało się do
_ 2 znaki od końca, próbujmy jeszcze raz z _+ - dopasowało się do
przedostaniego _, _ dopasowało się do ostatniego _, ale nie ma xyz
... i tak dalej - drzewo poszukiwań rośnie szybko, a zawsze na końcu
brakuje tego "xyz", a trzeba różnych kombinacji dopasowań "(_+_)+".
Cały problem powstaje zawsze, gdy dla (R1+R2)+ jest taki ciąg, do
którego można dopasować zarówno R1 jak i R2, i taki ciąg wystąpi wiele
razy po sobie.
--
Paweł Kierski
n...@p...net
 
Następne wpisy z tego wątku
- 21.05.09 13:12 Marcin 'Malcom' Malich
 - 21.05.09 14:16 Paweł Kierski
 - 21.05.09 17:06 Daniel Janus
 - 21.05.09 20:40 matmis
 - 22.05.09 07:51 Paweł Kierski
 - 22.05.09 07:54 Paweł Kierski
 - 24.05.09 21:03 matmis
 - 25.05.09 07:37 Paweł Kierski
 
Najnowsze wątki z tej grupy
- NOWY: 2025-09-29 Alg., Strukt. Danych i Tech. Prog. - komentarz.pdf
 - Na grupie comp.os.linux.advocacy CrudeSausage twierdzi, że Micro$lop używa SI do szyfrowania formatu dok. XML
 - Błąd w Sofcie Powodem Wymiany 3 Duńskich Fregat Typu Iver Huitfeldt
 - Grok zaczął nadużywać wulgaryzmów i wprost obrażać niektóre znane osoby
 - Can you activate BMW 48V 10Ah Li-Ion battery, connecting to CAN-USB laptop interface ?
 - We Wrocławiu ruszyła Odra 5, pierwszy w Polsce komputer kwantowy z nadprzewodzącymi kubitami
 - Ada-Europe - AEiC 2025 early registration deadline imminent
 - John Carmack twierdzi, że gdyby gry były optymalizowane, to wystarczyły by stare kompy
 - Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2025
 - Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
 - ,,Polski przemysł jest w stanie agonalnym" - podkreślił dobitnie, wskazując na brak zamówień.
 - Rewolucja w debugowaniu!!! SI analizuje zrzuty pamięci systemu M$ Windows!!!
 - Brednie w wiki - hasło Dehomag
 - Perfidne ataki krakerów z KRLD na skrypciarzy JS i Pajton
 - Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
 
Najnowsze wątki
- 2025-11-03 Gwarancja na używane AUTO. Czy dziś WARTO?
 - 2025-11-03 Znowu jakiś goooownoprawnik uważający się za KONSTYTUCJONALISTĘ
 - 2025-11-03 ABW już nie blokuje RT.com?
 - 2025-11-03 Czy ROZDANIE KPO śród swoich i nie swoich spowodowało KORZYŚĆ POLITYCZNĄ?
 - 2025-11-03 Warszawa => Starszy Konsultant SAP - obszar PP <=
 - 2025-11-03 Warszawa => International Freight Forwarder <=
 - 2025-11-03 Białystok => Programista React ze znajomością C++ <=
 - 2025-11-03 Warszawa => Generative AI Engineer <=
 - 2025-11-03 Warszawa => Gen AI Engineer <=
 - 2025-11-03 Białystok => Programista Delphi <=
 - 2025-11-03 Warszawa => Spedytor Międzynarodowy <=
 - 2025-11-02 totalna kontrola podatników?
 - 2025-11-02 Trzymacie pieniądze w bankach?
 - 2025-11-02 Bo sędzia prokuratorowi nie odmawia "niezawiśle" [rzepa: wnioski o areszt]
 - 2025-11-02 Michał Wawrykiewicz: "Prokuratura barszczyka bierze pod uwagę również INTENCJE uchwalaczy prawa
 




Elektromobilność dojrzewa. Auta elektryczne kupujemy z rozsądku, nie dla idei