Matematické Fórum

Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.

Nástěnka
22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.

Nejste přihlášen(a). Přihlásit

#1 06. 08. 2024 21:18

surovec
Příspěvky: 1008
Reputace:   24 
 

Regulární výraz v PHP

Ahoj, 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:

Code:

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

Ale to umožňuje zadat i to sqr...
Máte nápad?

Offline

  • (téma jako vyřešené označil(a) surovec)

#2 06. 08. 2024 23:26

check_drummer
Příspěvky: 4784
Reputace:   105 
 

Re: Regulární výraz v PHP

↑ surovec:
Ahoj, ujistím se: následující řetězce tedy považuješ taky za platné výrazy?
+*2
3)(

Ale neznám syntaxi php, podle mě v hranatých závorkách uvádíš jen znaky a ne celé řetězce, takže ti to asi uzná třeba i výraz "q"  apod.

možná bys potřeboval něco jako ([...] | sqrt )*


"Máte úhel beta." "No to nemám."

Offline

 

#3 07. 08. 2024 09:53

surovec
Příspěvky: 1008
Reputace:   24 
 

Re: Regulární výraz v PHP

↑ check_drummer:
Jj, jde mi jen o to, aby uživatel nemohl zadávat nějaké svoje hackerské příkazy (obsahující třeba příkaz DELETE ;-)), ale aby tam bylo možné zadat jednoduchý matematický výraz.
Dal jsem to sqrt do závorky a už to dělá co má, díky za reakci!

Offline

 

#4 07. 08. 2024 15:40

check_drummer
Příspěvky: 4784
Reputace:   105 
 

Re: Regulární výraz v PHP

↑ surovec:
Akorát pozor, že pomocí některých znaků výrazu můžeš taky způsobit hackování - třeba dvě dělítka za sebou (//) může někdy znamenat komentář.... A ten když vložíš do kódu může způsobit taky paseku.


"Máte úhel beta." "No to nemám."

Offline

 

#5 07. 08. 2024 21:17

surovec
Příspěvky: 1008
Reputace:   24 
 

Re: Regulární výraz v PHP

↑ check_drummer:
Aha, to díky za upozornění, nějak to ošetřím.

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson