Pattern stringPattern = Pattern.compile("(?!')\\w{1,}\\s?(?==)"); String[] patternTestCases = new String[] { "(name='asf'", "( name = 123 or name is null", "name is null)", " name = '='", " name='' and name like '%name%')", "(name = 'name=')"}; for (String testCase : patternTestCases) { Matcher matcher = stringPattern.matcher(testCase); StringBuffer sb = new StringBuffer(testCase.length()); while(matcher.find()) // continue when you find { matcher.appendReplacement(sb, "aliasObjectName.".concat(testCase.substring(matcher.start(), matcher.end()))); } ...