Je maintiens un ancien système qui a un problème d'enregistrement lorsqu'une chaîne contient un seul guillemet.Regex, Trouver un guillemet simple entouré d'un guillemet simple
Par exemple celles-ci échouent:
"update table set column2 = 'O'Connell', column3 = 'O'Riordon' where column1 = 1"
"insert into table (column1, column2, column3, column4, column5, column6, column7) values('O'Reilley','state, postcode','',1,2,'O'Riordon')".
Jusqu'à présent, je suis venu avec cette expression régulière de travail vbscript
([,=(]\s*'[^']*)'([^']*'\s*[,)\s])
Est-il possible d'écrire une expression régulière vbscript sans utiliser l'en-tête [(| = | \ s |,] et la bande-annonce [, |) | \ s]?
Merci.
EDIT: Correction de l'algèbre numérique à supprimer | de l'en-tête et de la remorque. Le regexp est utilisé comme suit
regexp.replace("string","$1''$2")
Outre le fait que la syntaxe correcte pour ces classes de caractère aurait été '[= (]' et '[ ,) \ s] ', et qu'il est curieux de savoir pourquoi ce dernier contient' \ s': Pourquoi voulez-vous les supprimer? Et s'ils sont partis, comment allez-vous dire où commence ou finit une partie? –
@TimPietzcker Merci pour la correction, le \ s doit correspondre à l'instruction Update "Column3 = 'O'Riordon'". – Jules
Exactement, donc si vous supprimez cette partie de la regex, comment sauriez-vous où commence ou finit une partie? Vous avez évidemment des données malformées, donc si quelqu'un peut dire quelles règles doivent être suivies pour sauver cela, c'est vous. –