Regulární výraz – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Regulární výraz – PHP – Fórum – Programujte.comRegulární výraz – PHP – Fórum – Programujte.com

 

Johny
~ Anonymní uživatel
87 příspěvků
6. 8. 2024   #1
-
0
-

Zdravím, nedaří se mi vytvořit regulární výraz, kterým bych otestoval, zda je zadaný řetězec matematickým číselným výrazem, který můe obsahovat pouze číslice, operátory +, -, *, /, ^, dále kulaté závorky ( a ) a také řetězec sqrt (nikoliv třeba sqr). Smysluplnost výrazu netestuji, stačí mi pouze výše uvedené podmínky. Já jsem zkusil toto:
preg_match('/^[0-9*-\/^\+\(\)sqrt]+$/', $vstup)

Ale to umožňuje zadat i to sqr...

Nahlásit jako SPAM
IP: 85.193.0.–
gna
~ Anonymní uživatel
1891 příspěvků
6. 8. 2024   #2
-
0
-

[] je výčet "povolených" znaků na jedné pozici, takže teď to máš jako "číslice,atd"-nebo-"s"-nebo-"r".... Takže to vyhoď ven ve stylu "libovolný z těchto znaků"-nebo-"sqrt".

Bacha na to mínus, to určuje rozsah znaků stejně jako v tom 0-9, takže je potřeba ho escapnout. Naopak kulaté závorky si myslím, že uvnitř hranatých není potřeba escapovat.

preg_match('/^([0-9+\-*\/^()]|sqrt)+$/', $vstup);

Jsou různé webové zkoušeče regulárních výrazů, kde vidíš, co přesně to dělá a můžeš si to ladit - třeba https://regex101.com/

Nahlásit jako SPAM
IP: 213.211.51.–
Johny
~ Anonymní uživatel
87 příspěvků
7. 8. 2024   #3
-
0
-

#2 gna
Perfektní, díky za vysvětlení, ten rozdíl mezi samostatnými písmeny a řetězcem jsem právě nikde nenašel. Pěkný den!

Nahlásit jako SPAM
IP: 85.193.0.–
peter
~ Anonymní uživatel
4014 příspěvků
7. 8. 2024   #4
-
0
-

 Schazi tam doplnit asi sqr a musi byt az za delsim sqrt, jinak by to skoncili pri nalezeni sqr (sqrt obsahuje sqr take). Asi to nenajdu, ale nekde jsem mel. js kalkulacku postavenou na regularnich vyrazech misto parsovani po znacich, jak se obvykle delava.

|sqrt|sqr
Nahlásit jako SPAM
IP: 2001:718:2601:258:1508:6c75:cb6d:b44...–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 17 hostů

Podobná vlákna

Regulární výraz — založil Pilot

Regulární výraz — založil Proxymus

Regularni vyraz — založil don_Dominique

Regulární výraz v c# — založil attila

Regularni vyraz — založil BigBear

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý