正则表达式多次替换单词中的单个字符

时间:2011-09-27 18:55:21

标签: regex

我有以下字符串:

INSERT INTO testtable ('Reference', 'Date', 'Address', 'Amount', 'ChequeNo') VALUES

我如何仅返回引号'

我基本上需要对INSERT INTO中的所有引号进行替换,直到VALUES为无效的SQL。

3 个答案:

答案 0 :(得分:2)

因为你没有提到你的开发环境,我认为你只是想修复这个sql问题。

这个awk系列可以解决这个问题:

awk -F'VALUES' '{gsub(/\x027/,"",$1);print $1FS$2;}' yourFile

<强>测试

kent$  echo "NSERT INTO testtable ('Reference', 'Date', 'Address', 'Amount', 'ChequeNo') VALUES('a','b','c','d','e')"|awk -F'VALUES' '{gsub(/\x027/,"",$1);print $1FS$2;}'  

NSERT INTO testtable (Reference, Date, Address, Amount, ChequeNo) VALUES('a','b','c','d','e')

答案 1 :(得分:1)

注意:假设存在NSRegularExpression标记,我假设您使用的是Objective-C。

按行分割,并在每行上执行以下操作:

[yoursqlstring stringByReplacingOccurrencesOfString:@"'"
                                         withString:@""
                                            options:NULL
                                              range:NSMakeRange(0, [[yoursqlstring rangeOfString:@"VALUES"] location])]

正则表达式不是为了做你想要的。

答案 2 :(得分:0)

如果您需要删除所有单引号,请执行以下操作:

NSString *newString = [originalString stringByReplacingOccurrencesOfString:@"'" withString:@""];