[PHP] RegEx Vergleichsoperatoren

NagathoR

Well-known member
ID: 16699
L
22 Februar 2007
45
2
Kann mir jemand ein gültiges Regex für folgende Anfrage geben?

"> 100"
">= 100 & < 200"
">= 100 | < 20"

Dabei sollen folgende Variablen gemachtcht werden "<|<=|=|=>|>||&"

Leider komme ich bei einfachen Anfrage mit
PHP:
/(<|<=|=|=>|>)+[0-9]*/
schon nicht weiter....

Danke.
 
Teste mal:
PHP:
<?php
	$string = '> 100 & <= 100';
	$regexp = '~^(?P<operator0><=?|=|=?>)\s+(?P<value0>\d+)\s*(?:(?P<conjunction>&|\|)\s+(?P<operator1><=?|=|=?>)\s+(?P<value1>\d+))?$~';

	if (preg_match($regexp, $string, $matches))
	{
		echo '<pre>',print_r($matches, true),'</pre>';
	}
?>
 
Das baut man irgendwann selber. ;)

Wichtig ist vielleicht noch anzumerken, dass der String immer getrimt sein muss, sonst steigt der RegExp aus, nur weil er am Anfang oder am Ende Whitespace findet.