Sto cercando di abbinare una stringa "Ordina per XXX" dove XXX può essere qualsiasi lettera, numero, punto, virgola, spazio o parentesi quadra. Tuttavia, mi piacerebbe solo abbinare questo se è non circondato da parentesi (parentesi su un lato è ok, purché non su entrambi i lati). Così dovrebbe corrispondere la parte in corsivo da "", da essa non dovrebbe corrispondere nulla inCorrispondenza stringa con Regex purché non sia racchiusa tra parentesi
dovrebbe corrispondere (sezione abbinato in corsivo):
- Selezionare X da Y ordine da z
- selezionare y = (select top 1 Z da C Ordina per [ID] disc)
caso non corrispondere:
- Selezionare X da Y (ordine da z)
- Select aa, NTILE (4) OVER (ordine da ab) gruppo da ac
ho la stringa regex per abbinare l'ordine dal testo: [ ]*order by [\w,.\[\] ]+
. Tuttavia, sto avendo qualche problema a ottenere il lookahead/dietro il lavoro correttamente. Qualche consiglio su come procedere?
Non riesco a distinguere tra '(selezionare top 1 Z da C Order by [ID] desc)' e '(OVER Order by a.b)' con i soli criteri. – nhahtdh
@nhahtdh - sì. riposto il paren nel secondo esempio. Modificato. –
Non ho molte espressioni regolari. Ho appena usato alcuni molto banali fino ad ora. Ho trovato uno strumento che puoi controllare le tue espressioni regolari. Forse può aiutarti anche tu. ecco il link http://www.asterworld.com/en/soft/010.html –