regulerní výrazy

Hezký den,

mohl by mi někdo, prosím, vytvořit regulerní výraz pro jméno, které smí obsahovat znaky a-z A-Z 0-9 ? ! ( ) [ ] , . *

Děkuji mnohokrát.
Regulerní výrazy mi nejdou a nevím, jak to sestavit tak, aby to bylo 100%.
Nejdříve zkus něco sám:
http://www.regularnivyrazy.info/shrnuti-syntaxe.html
Kdybych to nezkoušel, tak bych sem nepsal :)... já jen nechci někde udělat menší chybu, které by mohl někdo využít.
Kdyby sis o tom něco přečetl, tak bys alespoň věděl, že to nejsou regulerní, ale regulární výrazy.

Pokud jsi to zkoušel, tak nechápu, proč jsi sem nedal výsledky svého zkoušení a jednoduše se nezeptal, zda je to OK.
Protože je to rychlejší, než se po každém testu psát, jestli to bude přesně fungovat.

Raději si nechám od někoho poradit, než udělat něco špatně. Od toho tu to fórum je, ne ?
Fórum je tu od toho, aby pomohlo někomu, kdo se dostal do slepé uličky a neví jak dál. Nebude však za ručičku vodit někoho, kdo je líný si něco přečíst. Zrovna požadovaný regulární výraz najdeš hned v prvním odkazu, když do Googla zadáš "php regulární výraz".

Zkusil jsem zadat i "php regulerní výraz". A výsledek?
Google: "Zobrazeny výsledky pro dotaz php regulární výraz."

Takže když ani nevíš, jak se to píše, tak jsi nikde nic nehledal. Domácí úkoly tady za tebe dělat nebudeme.
Nejlepší metodou je zkoušet, zkoušet a zkoušet. Jen tak pochopíš, jak co funguje.
Pokud něco nejde napoprvé, tak se nic neděje. Budeš vědět, že takhle to nemělo být. Jakmile sám dosáhneš požadovaného výsledku, tak kromě dobrého pocitu, budeš příště vědět, v čem byl háček, a jak se tomu později vyvarovat. Chybami se člověk učí.

Samozřejmě fóra jsou tu od toho, aby pomáhali. Ale ne systémem "naval řešení a basta". Takhle to nefunguje a v reálném životě taktéž. Aby ti někdo pomohl, tak mu musíš dodat návrh, co máš dělat, co jsi do té doby dělal, případně poprosit o radu jak postupovat. Ale nikdy nežádej po někom, aby to udělal za tebe.

Nejhorší na začátečníkovi i rádoby expertovi je, že požaduje hotové řešení a přitom stejně nepochopí princip fungování. U nich nemá smysl cokoli vysvětlovat.

A ještě jedna poznámka k rychlosti. Nejrychlejší odpověď dostaneš tehdy, když dodáš všechny potřebné podklady včetně příkladů. Pouhé zadání není rychlé, protože jedno zadání může mít vícero řešení. A pokud první možná varianta neodpovídá tvým představám, tak ze sprintu se rázem stane maratón. Nebo zadání není natolik srozumitelné, že se vyžaduje upřesnění. A jsme zase u maratónu.


Ale zpět k tématu. Pokud se chceš naučit regulární výrazy. Nejlepší metodou je pokus-omyl. Prostě první věta, kterou jsem uvedl. Jen tak pochopíš, jak regulárky pracuji.

Jednu třetinu odpovědi jsi vlastně už udělal. Nechal jsi vypsat všechny znaky, které požaduješ. Zbývá to jen obalit (skupina znaků + kvantifikátor) a ošetřit (escapování).
A pokud máš své řešení, tak se neboj to sem dodat. Jen tak ti můžeme říci, zda je tvé řešení dobré nebo potřebuje vyladit.
Kit, nepiš prosím to, co vůbec není pravda... ano, špatně jsem si přečetl a nejsou to regulerní, ale regulární výrazy. Každopádně zadej si regulerní a najde ti to úplně to samé, co regulární...

Každopádně jsem zkoušel něco ve smyslu
^[a-zA-Z0-9]$

Tohle mi to hlásilo, že to je špatně (když jsem pomocí toho kontroloval proměnnou). Dělal jsem to pomocí funkce ereg();

Každopádně pardon, tenhle týden na to nemám kvůli škole vůbec čas, tak jsem doufal, že by mi na tohle "lehké" téma mohl někdo něco sepsat.
Prostě jsi DOUFAL špatně. Je zjevné, že jsi líný a chceš, aby TVŮJ problém VYŘEŠIL někdo jiný. To si budeš muset někoho najmout a zaplatit. Už tady máš DOSTATEK rad, jak tvůj problém vyřešit. Nikdo ti nic nedá na zlatém podnose. Je to TVŮJ PROBLÉM - TY musíš ukázat snahu, něco se naučit, něco vyzkoušet.
Doteď jsem byl jenom jako pozorovatel. Přesto mi to nedalo..

Už samotný fakt, že jsi vytáhl funkci ereg() svědčí o tom, že dokumentace tě vůbec nezajímá (schválně se podívej, co se k ní píšou zajímavého).

Mimo to, tvůj uvedený výraz "něco ve smyslu" vůbec nevyhovuje požadovanému zadání. A poznámku "hlásilo, že je něco špatně" máme chápat jak, jako php notice/warning/fatal error? Pokud ano, byl opravdu takový problém se tu hlášku přeložit a pochopit, případne zkopírovat sem?

A k tomu kopírování, proč jsi sem hned na začátku nenakopíroval celý řádek (případně pár řádky okolo) s regulárem? Kdybys k tomu dopsal 2 další výrazy, které jsi zkoušel, řešení bys měl už včera. Takhle mi připadá, že Kit a zbi nejsou vůbec daleko od pravdy (i když bych rád viděl, že se mýlím)..
Jak říkám, nemám na to teď kvůli škole čas, tak jsem požádal, jestli by mi to někdo nesepsal, abych se s tím nemusel dělat.

Upřímně nevím, zda je lepší ereg(), preg_match() nebo jiné fce, teď se na to ovšem v blízké době koukat nebudu... hold někdo nemá každý den čas :)...
Jak říkám, nemám na to teď kvůli škole čas, tak jsem požádal, jestli by mi to někdo nesepsal, abych se s tím nemusel dělat.

Upřímně nevím, zda je lepší ereg(), preg_match() nebo jiné fce, teď se na to ovšem v blízké době koukat nebudu... hold někdo nemá každý den čas :)...
Každopádně díky za radu s ereg(), asi bych si měl nejdříve zjistit, jestli funkce, kterou používám, je vhodná. ;)
"Já teď vůbec nemám čas".
Ono je to nejčastější výmluva. Kdybys neměl čas, tak bys neztrácel čas s tímto vláknem. Nikdo nemá čas. Ani já nemám čas.

Pro práci s regulárními výrazy v PHP je podstatě už jen PCRE knihovna. To jest skupinka funkcí s prefixem preg_* - preg_match(), preg_replace(), ...
Knihovna POSIX Regex (funkce s prefixem ereg_*) je zavržena, protože je oproti PCRE zastaralá a hodně pomalá.

Takže pokud chceš zkoušet nebo používat regulární výrazy v PHP, tak jedině přes PCRE - preg_match() apod.
Vřele díky.

Omlouvám se za toto zbytečné téma, ale mně to přišlo docela normální, já bych poradil, kdybych věděl.