1

当字符串包含单引号时,我正在维护一个有保存问题的旧系统。

例如,这些将失败:

"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')". 

到目前为止,我已经想出了这个有效的 vbscript 正则表达式

([,=(]\s*'[^']*)'([^']*'\s*[,)\s])

是否可以在不使用标题 [(|=|\s|,] 和尾部 [,|)|\s] 的情况下编写 vbscript 正则表达式?

谢谢。

编辑:修复发布的正则表达式以删除 | 从标题和拖车。正则表达式的使用如下

regexp.replace("string","$1''$2")
4

1 回答 1

1

我能想到的唯一方法只有在包含单引号的字符串从不包含空格时才有效。在这种情况下,您可以搜索

\B'([^'\s]*'[^'\s]*)'\B

解释:

\B        # Assert that there is no alphanumeric character before...
'         # the opening quote
(         # Match and capture...
 [^'\s]*  # Any number of non-quote/non-whitespace characters
 '        # One quote
 [^'\s]*  # Any number of non-quote/non-whitespace characters
)         # End of capture group 1
'         # Match the closing quote
\B        # Assert that there is no alphanumeric character afterwards
于 2012-10-03T04:54:14.503 回答