2010-01-15 5 views
1

J'essaye de trouver une expression de recherche/remplacement qui convertira des insertions de style Oracle avec des champs d'horodatage pour insérer des instructions pour une autre base de données.IntelliJ IDEA: regex pour supprimer la syntaxe Oracle to_timestamp

Fondamentalement, je veux convertir des chaînes comme:

to_timestamp('13-SEP-09 12.00.00.000000000 PM','DD-MON-RR HH.MI.SS.FF AM') 

juste:

'13-SEP-09 12.00.00.000000000 PM' 

J'ai essayé plusieurs expressions dans la recherche de l'IDEA/remplacer l', mais je ne peux toujours pas bien compris. Celui-ci:

to_timestamp(.[^,]*,.[^)]*) 

remplacé par 1 $ finit par correspondre à la chaîne que je veux, sauf la parenthèse fermante, mais supprime uniquement la première partie. Je me retrouve avec:

('13-SEP-09 12.00.00.000000000 PM','DD-MON-RR HH.MI.SS.FF AM') 

Je ne comprends vraiment pas ce qui se passe ici.

Répondre

4

On dirait que vous voulez:

to_timestamp\(('[^']*')[^)]*\) 

Décomposant:

to_timestamp est évident

\( correspond à l'ouverture paren

( commence la capture

'[^']' correspond à la première de chaîne cité

) arrête la capture

[^)]*\) correspond au reste du texte

Si c'est la chaîne entière vous correspondant, et pas seulement une partie d'un texte, vous pouvez utiliser .* au lieu de [^)]*\) pour la dernière partie; vous ne vous souciez pas vraiment de ce qui vient après la fermeture '.

+0

+1 pour le décomposer et ne pas seulement fournir une solution. –

+0

Merci! Cela fonctionne parfaitement, et je n'aurais jamais pu le faire seul. Je pensais que je comprenais assez bien regex, mais je ne comprends toujours pas pourquoi nous avons besoin d'une parenthèse échappée pour correspondre et une parenthèse sans échappement pour commencer à capturer. Si quelqu'un peut me diriger vers une bonne ressource regex, je serais très obligé. –

+0

http://www.regular-expressions.info/tutorial.html est un bon point de départ. Ensuite, il y a les livres: http://www.amazon.com/exec/obidos/ASIN/0596520689/jgsbookselection et http://www.amazon.com/exec/obidos/ASIN/0596528124/masteringregu-20 –

Questions connexes