🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.python
3 messages
3 total messages Started by Jax Fri, 27 Mar 2009 20:43
wyrażenia regularne w Pythonie
#25918
Author: Jax
Date: Fri, 27 Mar 2009 20:43
25 lines
1418 bytes
Witam

Czemu coś takiego nie działa:
lSubject = re.search(r"^(?<=Subject: ).*$", lMessage).group(0)

a to działa:
lSubject = re.search(r"(?<=Subject: ).*", lMessage).group(0)

Generalnie to chodzi Mi o to, by w wyrażeniu regularnym były ścisłe reguły, z
zaznaczeniem początku i końca wiersza. Ma ktoś pomysł jak zmienić to co działa
by były w tym reguły początku i końca wiersza?

w lMessage jest coś w stylu wiadomości email (czyli raczej nie jest to zgodne z
RFC):
[początek lMessage]
To: Adresat
From: Nadawca
Subject: Pasjonujące sprawy

A tu nie samowite opowiadanie....
[koniec lMessage]



Jax
Re: wyrażenia regularne w Pythonie
#25919
Author: MAcks
Date: Fri, 27 Mar 2009 20:51
21 lines
1733 bytes
W dniu 27.03.2009 21:43, Jax pisze:

> Czemu coś takiego nie działa:
> lSubject = re.search(r"^(?<=Subject: ).*$", lMessage).group(0)
>
> a to działa:
> lSubject = re.search(r"(?<=Subject: ).*", lMessage).group(0)
>
> Generalnie to chodzi Mi o to, by w wyrażeniu regularnym były ścisłe reguły, z
> zaznaczeniem początku i końca wiersza. Ma ktoś pomysł jak zmienić to co działa
> by były w tym reguły początku i końca wiersza?

http://www.regular-expressions.info/quickstart.html punkt Anchors. Aby 
Ci to działało, musisz włączyć multiline dla wyrażenia regularnego 
(flagi podawane jako parametry dodatkowe).
Fajne narzędzie do testowania regexów wbudowane jest w Eric IDE. Fajny 
jest też Kiki (dostępny w debianowatych jako pakiet lub razem ze Stani's 
Python Editor).

-- 
MAcks
Re: wyrażenia regularne w Pythonie
#25920
Author: Jax
Date: Sat, 28 Mar 2009 07:57
30 lines
1704 bytes
> http://www.regular-expressions.info/quickstart.html punkt Anchors. Aby
> Ci to działało, musisz włączyć multiline dla wyrażenia regularnego
> (flagi podawane jako parametry dodatkowe).

Dzięki.

Teraz działa coś takiego:

lSubject = re.compile(r"""(?<=^Subject: ).*$""", re.MULTILINE |
re.UNICODE).search(lMessage).group(0)

tylko nie rozumiem czemu nie działa to:

lSubject = re.compile(r"""^(?<=Subject: ).*$""", re.MULTILINE |
re.UNICODE).search(lMessage).group(0)


> Fajne narzędzie do testowania regexów wbudowane jest w Eric IDE.

Rzeczywiście oszczędza czas przy pisaniu wyrażeń. I co ważne Eric nadal jest
rozwijany.

> Fajny 
> jest też Kiki (dostępny w debianowatych jako pakiet lub razem ze Stani's
> Python Editor).

Nie stety nie udało Mi się go uruchomić.

Jax
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads