### Question:
SQRBuildService extends CommandLineBuildService { protected static String getProjectKey(String projectKey) { if (!StringUtil.isEmpty(projectKey)) { projectKey = projectKey.replaceAll("[^\\w\\-.:]", "_"); } return projectKey; } SQRBuildService(@NotNull final SonarProcessListener sonarProcessListener,
                           @NotNull final OSType osType); @NotNull @Override ProgramCommandLine makeProgramCommandLine();  }### Answer:
@Test public void test_project_key_escaping() { then(SQRBuildService.getProjectKey("")).isEqualTo(""); then(SQRBuildService.getProjectKey("abc")).isEqualTo("abc"); then(SQRBuildService.getProjectKey("123")).isEqualTo("123"); then(SQRBuildService.getProjectKey("a1_-:.")).isEqualTo("a1_-:."); then(SQRBuildService.getProjectKey("a?a")).isEqualTo("a_a"); then(SQRBuildService.getProjectKey("a?!#$%^&*()a")).isEqualTo("a__________a"); }