Domanda

Sto cercando di creare un'espressione regolare che corrisponde paragoni in questo modo:

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

Ho pensato che questo avrebbe funzionato, ma non è così:

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

E 'molto importante che il '>' o '<' precedere '='. Questi operatori non sarebbero valide:

=<
=>
>>
<<
==

Sto usando questo per creare un po 'di SQL dinamico in modo gli operatori di confronto devono SQL valido.

Qualche suggerimento?

Nessuna soluzione corretta

Altri suggerimenti

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

o qualcosa del genere: (In realtà non fare quello che vuoi, che corrisponde a tutte le combinazioni di 2character = <>, ma per chiarezza)

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

-> quando si utilizzano le parentesi [], vuol dire, che uno dei personaggi all'interno dovrebbe avvenire (multipla | definita può portare a un comportamento indefinito, o il comportamento non sono a conoscenza di)

-> Probabilmente si voleva utilizzare le parentesi semplici (), dove il | ha significato la 'O'.

Direi che la regex data dal EMFI è abbastanza buono. Con alcune modifiche si può prendere espressioni come questo

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

o del presente

"currentDate==2012/11/07";

Con questa regex modificato

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

E dare come "valida". Probabilmente è molto semplice, ma almeno nel mio caso, abbastanza

EDIT: Regex è stato modificato al fine di tenere operatori di confronto (<,>,> =, <=, ==) e gli operatori booleani (&&, ||) in modo simile a C-come le lingue

La sintassi […] denota una classe di caratteri. Utilizzare (…) per raggruppare invece:

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

Ed ecco un più compatto una:

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

o

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

Questo farà quello che stai cercando.

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

appena risolto questo per me stesso. corrisponde <,>, <=,> =,! =, =, <> e non => o = >. Sto solo controllando per che nel mio codice di applicazione.

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

Ora sto im evviva vecchio post, ma, ho fatto regex strega è maiuscole e minuscole e solo constatare che quello che ci serve, e spero che sia aiutare qualcuno.

I suoi lavori per! =, <=,> =, ==, <,> e trovare solo su l'inizio della stringa.

^(^(!=)?|^(<=)?|^(>=)?|^(==)?|^(<)?|^(>)?)?    
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top