Sto lavorando a un progetto in cui l'utente immette una stringa di ricerca leggibile con gli operatori E OR. I tre esempiConvertire l'input dell'utente in espressioni regolari
- una E (B o C) -> (= ba \ b \?.) (= (\ bb \ b) |?. (\ Ac \ b)). *
- a OR (B e C)
- (a o B) e (C o d)
Quanto sopra sono campioni di ingresso I potuto ottenere. Voglio prendere quell'input e convertirlo in regex. Non è un esempio di un compilatore? Guardandolo, vedo che quello che voglio fare è convertire un comando di alto livello in uno di basso livello. Hai qualche suggerimento su come potrei realizzare quanto sopra? Quello che voglio è passare la regex prodotta in jsoup (pseudo selettore: matchesOwn) e interrogare un documento html. Grazie per il vostro aiuto.
Se si dispone di parentesi graffe come questa '((()()) ((())())', non è possibile analizzarlo con espressioni regolari in Java. – nhahtdh
Grazie per la risposta. Non voglio analizzare l'input con regex, voglio convertirlo in regex. Invece di chiedere all'utente di darmi regex, gli chiedo una versione più leggibile di esso. – alkis
Come gestiresti il fatto che le regex hanno un ordine ma le stringhe di ricerca no. se un utente inserisce 'foo AND bar' si aspetta che' bar foo' corrisponda a quello che il tuo esempio non userà. O stai per generare ogni permutazione. – user1937198