正则表达式引号之间的单词的多个实例(SQL)

时间:2018-08-22 09:57:41

标签: php sql regex pcre

我试图在引号之间匹配

im,因为转换时我在字符串中遇到单词VALUES的问题。示例字符串是

INSERT INTO lt VALUES (2, '2007-08-06', 10000.00, 'startVALUES VALUE\'S startVALUESend VALUESend', NULL);

我正在使用

(\'.*?(?:\\').*?(values).*?\')

这是my regex演示。

我设法将重点放在引号之间的文本上,不匹配转义的引号,但是我无法匹配所有的VALUES,只有一个被捕获。您能帮忙捕捉开始(VALUES)和(VALUES)结束

我的pg2mysql转换器将引号内的VALUES替换为其他插入内容,因此我想捕获引号内的可能值字符串并采取一些解决方法。

1 个答案:

答案 0 :(得分:0)

您需要先将值分开,然后再将其添加到insert语句-

$column1 = "startVALUES VALUES startVALUESend VALUESend";
$column1 = preg_replace('/\s+/',' ',str_replace('VALUES','',$column1));

如果字符串VALUE\'s附带,则需要单独处理。

希望这会有所帮助。