2009-02-05 9 views
21

Ho provato alcuni strumenti di regex come Regulator, Regulazy & RegexBuddy. Non fanno quello che voglio e si aspettano che l'utente conosca le espressioni regolari.strumento di creazione di Regex facile da usare?

Voglio uno strumento per i manichini. Dite allo strumento che ho bisogno di un'espressione regolare per qualcosa del tipo "corrisponde a qualsiasi cosa che termina con la parola" sì "e contiene almeno un'occorrenza della frase"/test/"" e crea l'espressione regolare per voi.

Quindi inserisco la mia richiesta in inglese semplice o in inglese semplice o lo strumento ha tutti i tipi di selezioni pronte e io scelgo tra di loro per creare ciò che voglio ad hoc.

Esiste uno strumento adatto ai non sviluppatori? Non sto cercando un tester regex.

+0

Questa domanda è abbastanza correlata: http://stackoverflow.com/questions/500839/regular-expression-compiler – Cerebrus

+5

Personalmente, trovo l'idea di provare a programmare senza voler imparare anche la sintassi più semplice della lingua che si ' re programmare in (e le espressioni regolari * sono * una lingua) per essere un concetto spaventoso. Non sapere che qualcosa va bene; non * voler * capire qualcosa con cui lavorerai regolarmente è terrificante. –

+0

I regex sono un linguaggio di programmazione. Non penso che abbia senso dire "Non so programmare, ma voglio scrivere espressioni regex". Chiedere qualcosa per scrivere regex per te basato sull'inglese ha tutto il senso di volere qualcosa scrivere codice PHP per te basato sull'inglese. –

risposta

1

Non sono sicuro che un tale strumento esista, poiché di solito fanno il contrario:
Analizzare un'espressione regolare e tradurlo in inglese.

La soluzione più vicina alle proprie necessità sarebbe questo C# library, consentendo di programmare regexp in modo semi-leggibile:

Invece di questo:

const string findGamesPattern = 
@"<div\s*class=""game""\s*id=""(?<gameID>\d+)-game""(?<content>.*?)<!--gameStatus\s*=\s*(?<gameState>\d+)-->"; 

si avrebbe, utilizzando ReadableRex:

Pattern findGamesPattern = Pattern.With.Literal(@"<div") 
    .WhiteSpace.Repeat.ZeroOrMore 

    .Literal(@"class=""game""").WhiteSpace.Repeat.ZeroOrMore.Literal(@"id=""") 

    .NamedGroup("gameId", Pattern.With.Digit.Repeat.OneOrMore) 

    .Literal(@"-game""") 

    .NamedGroup("content", Pattern.With.Anything.Repeat.Lazy.ZeroOrMore) 

    .Literal(@"<!--gameStatus") 

    .WhiteSpace.Repeat.ZeroOrMore.Literal("=").WhiteSpace.Repeat.ZeroOrMore 

    .NamedGroup("gameState", Pattern.With.Digit.Repeat.OneOrMore) 

    .Literal("-->"); 
+0

Sei davvero ** in grado di trovare questo leggibile? COBOL è più leggibile di C o solo più dettagliato? –

+0

@ Jan: err ... dettagliato. È una scarsa forma di auto-documentazione. – VonC

8

txt2re sembra davvero buono. Ho inserito "Questa stringa contiene test in esso e finisce in sì" nella casella, cliccato su test e yes e got a regular expression. Non si concentra sull'insegnamento su come costruire le espressioni regolari, ma mostra il codice perl per analizzare ciò di cui hai bisogno.

Il vero potere di questo strumento è la sua capacità di riconoscere cose come date, URL e tag. Gli spazi bianchi non sembrano funzionare troppo bene, tuttavia, e non sembra gestire alcun tipo di ripetizione.

+0

+1 Molto interessante. Fornisce anche codice di esempio per implementare la regex in una varietà di lingue. –

3

Per me, lo strumento migliore è RegexBuilder è open source e writen in C#, in modo da poter personalizzare tanto quanto si vuole;)

Enjoy. ;)

+1

-1: come specificato dall'autore, egli "non sta cercando un tester di regex" – VonC

+0

il collegamento è rotto. –

14

Sono stato un fan dell'applicazione Ultrapico's Expresso. C'è una sezione builder che ti aiuta (un po ') nella costruzione di frammenti dell'espressione. Ancora più importante spiegherà un'espressione esistente (sia la propria che dalla libreria di espressioni incorporate), sezione per sezione.

Include anche una sezione di test e sostituzione per visualizzare e testare le vostre espressioni. Infine genererà l'espressione formattata per C#, C++ o VB.NET in modo da sapere esattamente come inserire l'espressione nel progetto.

Meglio di tutto è gratuito. Ho utilizzato questo strumento per imparare come funzionano le espressioni regolari, in particolare quelle complesse. Non posso dire che rende le espressioni di scrittura idiot proof ma ha sicuramente reso le espressioni di apprendimento più facili per me ...

Questo strumento è stato descritto in uno MSDN Webcast da Zain Naboulsi, e potrebbe valere la pena di essere un orologio. Spero che questo aiuti, e buona fortuna con il tuo viaggio Regex!

+0

Expresso è fantastico. Lo uso per creare espressioni complesse in Python. L'unica cosa che devi ricordare di fare in quel caso è il culo? P ai tuoi gruppi nominati. – Soviut

1

Anche io stavo usando Expresso e l'ho trovato abbastanza buono.La cosa più importante per me in questi strumenti è la convalida e non tanto gli aiuti visivi per la costruzione di espressioni. Ho solo bisogno di uno strumento per ricordarmi le cose, non progettarle per me.

In ogni caso, ecco un altro libero, che mi piace molto. Si chiama Rad Software Regular Expression Designer. Spero che questo ti aiuti.

+0

Sì, sono d'accordo. Stavo solo cercando di suggerire un'alternativa, anche se non direttamente utile, che non ho creato io stesso. – Slavo

9

Personalmente mi piace molto Expresso http://www.ultrapico.com/Expresso.htm L'interfaccia è abbastanza pulita: consente di testare la funzionalità di ricerca e sostituzione, ha un valido aiuto e in più genera le espressioni C# per te, se lo desideri.

+0

Attendi ... per una completa divulgazione qui Jan crea un prodotto concorrente chiamato "RegexBuddy" (vedi la sua risposta sopra). La scorsa settimana ho consigliato Expresso a un collega di sviluppatori che non sapeva nulla delle espressioni regolari e ha trovato il costruttore molto utile. Mentre apprezzo che vuoi promuovere il tuo prodotto, segnare la mia risposta è molto duro. Potresti avere semplicemente disaccordo e sfruttato di nuovo il tuo prodotto. – paulecoyote

+0

Sono d'accordo con Paul! La risposta di Paul è buona e si adatta a questo, quindi valutarlo non va bene e non promuovere anche il tuo prodotto commerciale tramite SO. A proposito, mi piace molto Expresso e lo uso molto spesso per RegEx complesso. –

0

Mi sono stabilito su RegexBuddy. Ha un debugger, un visualizzatore e traduce la regex in un inglese semplice.

0

Beh, è ​​ancora molto uno strumento in fase di sviluppo, ma è possibile provare Textpression a http://www.textpression.com Disclosure: I'm the author.

Textpression consente la creazione di espressioni regolari con un editor trascina e rilascia; nessuna sintassi regex da imparare! Al momento della scrittura Textpression è ancora in Alpha, ma fammi sapere cosa ne pensi!

Problemi correlati