Portál AbcLinuxu, 13. května 2025 22:14

Dotaz: Pomoc s regulárnym výrazom.

11.6.2008 09:03 Peter
Pomoc s regulárnym výrazom.
Přečteno: 196×
Odpovědět | Admin
Dobrý deň Vám prajem. Potreboval by som pomôcť s regulárnym výrazom v apache v položke ServerAlias. Proste v zmysle:
<VirtualHost *:80>
  ...
  UseCanonicalName Off
  ServerAlias REGEX[^.*\.mainsite.com\.org$]
  ...
</VirtualHost>
Konkrétne by som potreboval v tom REGEX niečo takéto:

1.) *.*
2.) www.*.*

Pričom tie hviezdičky reprezentujú hocijaký znak okrem bodky (.) Proste aby to v konečnom prípade bralo vylucne:

1.) hocika_domena.napriklad_com
2.) www.hocijaka_domena.napriklad.net

Vopred veľmi pekne ďakujem za pomoc.
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

11.6.2008 09:31 happy barney | skóre: 34 | blog: dont_worry_be_happy
Rozbalit Rozbalit vše Re: Pomoc s regulárnym výrazom.
Odpovědět | | Sbalit | Link | Blokovat | Admin
ľubovoľný znak tam byť nemôže, len niektoré znaky, napr: [-a-zA-Z0-9_]*
11.6.2008 09:44 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: Pomoc s regulárnym výrazom.
Odpovědět | | Sbalit | Link | Blokovat | Admin
^[^.]+\.[^.]+$ odpovídá vašemu *.*, ^www\.[^.]+\.[^.]+$ vašemu www.*.*. Podle mne tam tedy správně má být + a ne * která je ve vašem příkladu nahoře, protože * znamená opakování předchozího znaku 0 až n×, + znamená 1 až n× – alespoň tak je to v běžných regulárních výrazech. A doménový název s délkou 0 znaků je nesmysl. [^.] znamená „cokoliv mimo tečku“.
11.6.2008 10:19 Peter
Rozbalit Rozbalit vše Re: Pomoc s regulárnym výrazom.
No - to je všetko pekné - konečne som aspoň zhruba pochopil ako fungujú regulárne výrazy. Ďakujem veľmi pekne. Mám ale ešte jeden problém: nefunguje to. Neviete niekto, že ako sa vlastne narába s regulárnymi výrazmi vo VirtualHost v položke ServerAlias?
11.6.2008 10:24 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: Pomoc s regulárnym výrazom.
To mne ve vašem dotazu překvapilo, kde jste přišel na ten REGEX. V dokumentaci k verzi 2.2 se píše pouze o možnosti využít žolíky * a ? – pak by měl fungovat ten váš zápis *.* a www.*.*.
11.6.2008 10:30 Peter
Rozbalit Rozbalit vše Re: Pomoc s regulárnym výrazom.
1.) nevykať - prosím - ďakujem.
2.) ten REGEX som našiel niekde na webe, ale za frasa už neviem znova tu stránku nájsť.
3.) tie žolíky aj fungujú, len majú jeden neprekonatelný problém. A síce to, že v tej * sa nachádza bodka (.) a tým pádom to celé nefunguje
4.) ciže keby sa práve tie žolíky dali napísať takto: www.*(okrem bodky).*(okrem bodky) tak by to bolo presne to, čo potrebujem
11.6.2008 10:35 Peter
Rozbalit Rozbalit vše Re: Pomoc s regulárnym výrazom.
Mimochodom - proste - aspoň keby sa to dalo zapísať takto:

www.[a-zA-Z0-9].[a-zA-Z0-9]

Len ani toto nefunguje. V apache sú povolené ako wildcard výlučne "* a ?" ? Lebo potom to je dosť blbé,
11.6.2008 10:52 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: Pomoc s regulárnym výrazom.
Pokud je to jak píšeš v bodu 3, pak je to podle mne chyba, takovéhle chování nemá v tomto případě žádný význam. Zkus to zadat do Bugzilly Apache (pokud to tam ještě není a když si ověříš, že se to tak opravdu chová).

To REGEX možná funguje s nějakým speciálním modulem, ale podle dokumentace soudím, že ve standardním Apachi tohle nejde.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.