Given this string:
if let value = json["PropertyID"].int { self.propertyID = value } I have successfully matched and replaced to this one:
self.propertyID = representation.valueForKey("PropertyID")?.integerValue Note: the entire string changes, except for propertyID and "PropertyID" that are reused to build the new string
And so, applying this regex expression:
// Match if let value = json\["([^\)]*)"\].int \{ self.([^\)]*) = value \} // Replace self.$2 = representation.valueForKey("$1")?.integerValue The result output is this perfectly formatted string:
self.propertyID = representation.valueForKey("PropertyID")?.integerValue So far so good! However, the text/code file that I'm trying to match and replace, actually looks more like this:
if let value = json["PropertyID"].int { self.propertyID = value } if let value = json["UniqueID"].string { self.propertyUniqueID = value } if let value = json["TypologyDescription"].string { self.typology = value } if let value = json["RoomsNumber"].int { self.bedrooms = value } if let value = json["BathroomsNumber"].int { self.bathrooms = value } if let value = json["GrossBuiltArea"].decimal { self.grossBuiltArea = value } if let value = json["TotalLandArea"].decimal { self.totalLandArea = value } if let value = json["CurrentAskingPrice"].decimal { self.price = value } if let value = json["CurrencyDescription"].string { self.currency = value } if let value = json["CountryDescription"].string { self.country = value } if let value = json["DistrictDescription"].string { self.district = value } if let value = json["CountyDescription"].string { self.county = value } if let value = json["ParishDescription"].string { self.parish = value } if let value = json["Latitude"].decimal { self.latitude = value } if let value = json["Longitude"].decimal { self.longitude = value } if let value = json["DefaultPhotoID"].int { self.defaultPhotoID = value } if let value = json["PropertyStageStatus"].string { self.propertyStageStatusDescription = value } if let value = json["PropertyStageSubStatus"].string { self.propertyStageSubStatusDescription = value } At this point, the regex expression doesn't seem to care about boundaries. It matches the entire text instead of multiple occurrences (I'm expecting 4 in this example).
I understand why this happens! Just not how to overcome it yet... I need it to begin at "if" and end at "}" and don't go beyond that line! Giving me the 4 occurrences and not the whole text/code as 1 single occurrence.
I've been trying to understand boundaries and anchors but unable to apply them to this context so far.
Thank you!