标签: objective-c regex sqlite regex-negation
我有一个正则表达式
(?<=@)'|'(?=%)
它成功匹配此objective-c字符串
%@
@"UPDATE RESTAURANTS SET CITY='%@', NAME='%@' ", city, @"Joy's Restaurant";
但是我想要相反的事情来匹配任何不在%@附近的撇号,即只匹配本例中Joy's Restaurant中的撇号。
Joy's Restaurant
任何想法如何做到这一点?
答案 0 :(得分:3)
否定的外观非常简单。使用(?!…)进行否定预测,使用(?<!…)进行负面预测。例如:
(?!…)
(?<!…)
(?<!@)'(?!%)
只要不是@之前没有匹配任何撇号,就不会匹配%。请注意,您必须删除替换(|),以确保满足两个外观。
@
%
|
答案 1 :(得分:2)
使用负面反对和负面预测。
Live Demo
或者,你可以在上下文中使用交替运算符,将你要排除的内容放在左边,(说扔掉它,它是垃圾)并在捕获组中放置你想要匹配的内容右边。
'%@'|(')