Frage

Ich versuche, einen regulären Ausdruck, dass Streichhölzer Vergleiche wie diese zu erstellen:

= 445
> 5
>= 22
< 3
<= 42
<> 10

Ich dachte, dass dies funktionieren würde, aber es funktioniert nicht:

[=|>|<|>=|<|<=|<>]\s\d+

Es ist sehr wichtig, dass die '>' oder '<' precede '='. Diese Operatoren wäre nicht gültig:

=<
=>
>>
<<
==

Ich verwende dies einige dynamische SQL zu erstellen, so dass die Vergleichsoperatoren gültige SQL benötigen.

Irgendwelche Vorschläge?

Keine korrekte Lösung

Andere Tipps

(=|>|<|>=|<|<=|<>)\s\d+

oder so etwas wie: (Nicht wirklich tun, was Sie wollen, sie paßt zu allen 2character Kombinationen = <>, aber für Klarheit)

[=><]{1,2}\s\d+

-> wenn Sie die [] Klammern verwenden, bedeutet dies, dass eines der Zeichen im Inneren stattfinden soll (mehrere | definiert ist, kann zu undefinierten Verhalten führen, oder Verhalten, das ich bin mir nicht bewusst)

-> Sie wahrscheinlich zu verwenden einfache Klammern wollen (), wo die | hat die 'OR' Bedeutung.

Ich würde sagen, die Regex von Emfi gegeben ist gut genug. Mit einigen Modifikationen kann es Ausdrücke wie diese

nehmen
"currentDate>=2012/11/07&&currentDate<=2012/11/08";

oder das

"currentDate==2012/11/07";

Mit diesem modifizierten regex

(<[=>]?|==|>=?|\&\&|\|\|)

Und geben Sie es als „gültig“. Wahrscheinlich ist sehr einfach, aber zumindest in meinem Fall genug

EDIT: Regex wurde modifiziert, um Vergleichsoperator zu übernehmen (<,>,> =, <=, ==) und Booleschen Operatoren (&&, ||) in ähnlicher Weise wie C-ähnliche Sprachen

Die Syntax […] bezeichnet eine Zeichenklasse. Verwenden (…) für die Gruppierung statt:

(=|>|<|>=|<|<=|<>)\s\d+

Und hier ist ein kompakter ein:

(=|[<>]=?|<>)\s\d+

Oder:

(=|<[>=]?|>=?)\s\d+

Dieser wird tun, was Sie suchen.

(<[=>]?|=|>=?)\s\d+

gelöst gerade dieses für mich. sie paßt <,>, <=,> =,! =, =, <> und nicht => oder = >. Ich bin nur für die Überprüfung in meinem Anwendungscode.

([!<>])?([=>])?(?!<)

ich bin jetzt im hurra alte Post, aber, ich regex Hexe gemacht haben Groß- und Kleinschreibung und finden nur das, was wir brauchen, und ich hoffe, dass es Hilfe jemand.

Seine Werke für! =, <=,> =, ==, <,> und finden Sie es nur auf den Anfang der Zeichenfolge.

^(^(!=)?|^(<=)?|^(>=)?|^(==)?|^(<)?|^(>)?)?    
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top