当字符串包含单引号时,我正在维护一个存在保存问题的旧系统。
例如,这些将失败:
"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")
答案 0 :(得分: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