eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programming › problem ze stworzeniem wyrażenia regularnego
Ilość wypowiedzi w tym wątku: 7

  • 1. Data: 2009-03-04 23:27:33
    Temat: problem ze stworzeniem wyrażenia regularnego
    Od: ::Marcin:: <m...@w...pl>

    Witam

    mam problem ze stworzeniem wzorca który wyłuska mi ze stringa konkretna
    część:

    oto przykładowy string "Dowolny ciag znaków (24)".

    Kazdy z nich na końcu ma liczbę obudowana nawiasami.

    Jak za pomocą wyrażeń regularnych wyłuskać liczbę obudowaną nawiasami?

    Dodam jeszcze ze nie znam ilości cyfr jaka może wystąpić pomiędzy nawiasami.

    Dzięki za wszelkie wskazówki...


  • 2. Data: 2009-03-05 07:38:54
    Temat: Re: problem ze stworzeniem wyrażenia regularnego
    Od: "Artur M. Piwko" <m...@b...pl>

    In the darkest hour on Thu, 05 Mar 2009 00:27:33 +0100,
    Marcin <m...@w...pl> screamed:
    > Witam
    >
    > mam problem ze stworzeniem wzorca który wyłuska mi ze stringa konkretna
    > część:
    >
    > oto przykładowy string "Dowolny ciag znaków (24)".
    >
    > Kazdy z nich na końcu ma liczbę obudowana nawiasami.
    > Jak za pomocą wyrażeń regularnych wyłuskać liczbę obudowaną nawiasami?
    > Dodam jeszcze ze nie znam ilości cyfr jaka może wystąpić pomiędzy nawiasami.
    > Dzięki za wszelkie wskazówki...

    1. Nawiasy aby były nawiasami nie grupowaniem musisz "wyeskejpować.
    2. Liczbę wyszukasz przez [0-9] lub \d, w zależności od implementacji.
    3. Krotność 1 do n oznaczamy przez +.

    --
    [ Artur M. Piwko : Pipen : AMP29-RIPE : RLU:100918 : From == Trap! : SIG:225B ]
    [ 08:37:23 user up 12002 days, 20:32, 1 user, load average: 0.05, 0.10, 0.02 ]

    Vidi, vici, veni. (I saw, I conquered, I came).


  • 3. Data: 2009-03-06 07:40:39
    Temat: Re: problem ze stworzeniem wyrażenia regularnego
    Od: ::Marcin-OSI:: <m...@w...pl>

    > 1. Nawiasy aby były nawiasami nie grupowaniem musisz "wyeskejpować.
    > 2. Liczbę wyszukasz przez [0-9] lub \d, w zależności od implementacji.
    > 3. Krotność 1 do n oznaczamy przez +.

    Ja zrobiłem to w taki sposób:
    ([(]+[0-9]+[)])$
    używam klasy Regx w C#.
    Z tego co przetestowałem to zwraca zawsze wynik w postaci "(liczba)".
    Pewnie nie jest to elegancki zapis można było to zrobić lepiej ale
    ja dopiero zaczynam sie bawić wyrażeniami regularnymi.

    Czekam na wszelakie wskazówki...


  • 4. Data: 2009-03-06 08:05:28
    Temat: Re: problem ze stworzeniem wyrażenia regularnego
    Od: Mariusz Kruk <M...@e...eu.org>

    epsilon$ while read LINE; do echo \>"$LINE"; done < " Marcin-OSI"
    >Ja zrobiłem to w taki sposób:
    >([(]+[0-9]+[)])$
    >używam klasy Regx w C#.
    >Z tego co przetestowałem to zwraca zawsze wynik w postaci "(liczba)".
    >Pewnie nie jest to elegancki zapis można było to zrobić lepiej ale
    >ja dopiero zaczynam sie bawić wyrażeniami regularnymi.

    Dziwny zapis. Czyżby MS w C# nawet regexpy musiał po swojemu przerobić?
    W klasycznych PCRE to byłoby \(\d+\)$, albo \([0-9]\+\)$
    Jeśli interpretować twojego regexpa jako PCRE, napisałeś coś, co będzie
    dopasowywało _jeden lub więcej_ nawiasów otwierających, co najmniej
    jedną cyfrę i jeden nawias zamykający. Przy czym zapis [(] oraz [)] do
    najpiękniejszych nie należy (choć pewnie regexp zostanie skompilowany do
    tego samego, co przy podaniu explicite \( i \)).
    Poza tym, trochę niepotrzebnie zgrupowałeś to wszystko. (chyba, że masz
    jakiś cel w tym).

    --
    \------------------------/ Moebius always does it on the same side.
    | K...@e...eu.org |
    | http://epsilon.eu.org/ |
    /------------------------\


  • 5. Data: 2009-03-06 08:28:18
    Temat: Re: problem ze stworzeniem wyrażenia regularnego
    Od: "Artur M. Piwko" <m...@b...pl>

    In the darkest hour on Fri, 06 Mar 2009 08:40:39 +0100,
    Marcin-OSI <m...@w...pl> screamed:
    >> 1. Nawiasy aby były nawiasami nie grupowaniem musisz "wyeskejpować.
    >> 2. Liczbę wyszukasz przez [0-9] lub \d, w zależności od implementacji.
    >> 3. Krotność 1 do n oznaczamy przez +.
    >
    > Ja zrobiłem to w taki sposób:
    > ([(]+[0-9]+[)])$
    > używam klasy Regx w C#.
    > Z tego co przetestowałem to zwraca zawsze wynik w postaci "(liczba)".
    > Pewnie nie jest to elegancki zapis można było to zrobić lepiej ale
    > ja dopiero zaczynam sie bawić wyrażeniami regularnymi.
    >

    Dostałeś to co ująłeś w nawiasy. A ująłeś w nie i cyfry i nawiasy
    właściwe.

    --
    [ Artur M. Piwko : Pipen : AMP29-RIPE : RLU:100918 : From == Trap! : SIG:219B ]
    [ 09:27:48 user up 12003 days, 21:22, 1 user, load average: 0.13, 0.04, 0.00 ]

    This screen intentionally left blank.


  • 6. Data: 2009-03-06 09:01:16
    Temat: Re: problem ze stworzeniem wyrażenia regularnego
    Od: Jędrzej Dudkiewicz <j...@g...com>

    Mariusz Kruk wrote:
    > Przy czym zapis [(] oraz [)] do
    > najpiękniejszych nie należy (choć pewnie regexp zostanie skompilowany do
    > tego samego, co przy podaniu explicite \( i \)).

    Jak zapisano tutaj:

    http://www.opengroup.org/onlinepubs/007908799/xbd/re
    .html

    A subexpression can be defined within a BRE by enclosing it between the
    character pairs \( and \).

    To jest powód, dla którego zapis [(] jest dla mnie jaśniejszy niż \(.

    JD


  • 7. Data: 2009-03-06 09:07:29
    Temat: Re: problem ze stworzeniem wyrażenia regularnego
    Od: "Stachu 'Dozzie' K." <d...@d...im.pwr.wroc.pl.nospam>

    On 06.03.2009, Jędrzej Dudkiewicz wrote:
    > Mariusz Kruk wrote:
    >> Przy czym zapis [(] oraz [)] do
    >> najpiękniejszych nie należy (choć pewnie regexp zostanie skompilowany do
    >> tego samego, co przy podaniu explicite \( i \)).
    >
    > Jak zapisano tutaj:
    >
    > http://www.opengroup.org/onlinepubs/007908799/xbd/re
    .html
    >
    > A subexpression can be defined within a BRE by enclosing it between the
    > character pairs \( and \).
    >
    > To jest powód, dla którego zapis [(] jest dla mnie jaśniejszy niż \(.

    A to zależy czy używasz BRE, ERE czy PCRE. Ja wolę wycytowanie nawiasów
    przy ERE i PCRE, BRE uważam za średnio wygodne.

    --
    Stanislaw Klekot

strony : [ 1 ]


Szukaj w grupach

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: