2011-09-27 52 views
0

我有以下字符串:正则表达式替换单个字符多次

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

我怎么会只返回引号'

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

+0

有字符串替换功能,这些功能用于替换字符知府。你为什么要使用正则表达式? – Tomalak

+0

我有这个在一个文本文件和思想正则表达式,有什么功能? –

+2

不太确定你要做什么...删除引号?用其他东西替换它们? – glibdud

回答

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

注意:由于存在NSRegularExpression标记,因此我假定您使用Objective-C。

拆分它用线,每线,这样做:

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

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

0

如果您需要删除所有单引号,只是这样做:

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