내 코드에서 정규 표현식을 구현할 때 문제가 발생합니다 ...정규식이 작동하지 않습니다. java.util.regex. *;
나는 그것에 대한 간단한 설명을 해드 리겠습니다 ... 그 String에 요소가 들어 있는지 검사 할 String을받는 함수가 있습니다. ArrayList
(이 요소는 하나 이상의 단어 일 수 있음). 목록의 요소가 포함되어 있지 않으면 파일에 쓰기 위해 반환되고 그렇지 않으면 무시됩니다. 먼저 나는 한 다음
private boolean containDiscontinuedWord(String query) {
Matcher matcher;
Pattern pattern;
for (String blackL : blackList) {
pattern = Pattern.compile("\\b" + blackL + "\\b");
matcher = pattern.matcher(query);
while(matcher.find()) {
return true;
}
}
return false;
}
내가 여기에이 문제는 내가 리눅스 환경에서 응용 프로그램을 실행할 때 JVM (1.5 설치)하는 것이 아무 것도 파일에 기록되지이다 ...하지만 그것은 창에서 수행 환경. 내 응용 프로그램은 1.6과 1.5 호환성을 가지고 만들어졌습니다.
그래서 나는 다음과 같은 한 :private boolean containDiscontinuedWord(String query) {
for (String blackL : blackList) {
if(query.matches(".*\\b(" + blackL + ")\\b.*")){
return true;
}
}
return false;
}
그리고이 기능은 잘하지만없이 작동을 "*"나는 정확히 일치에 사용할 필요하지만, 다시 내 정규 표현식의 ...하지만 Windows 환경에서 잘 실행됩니다. 나는 이것에 대해 여러 가지 방법으로 검색했지만이 문제를 해결하는 것을 찾을 수 없다. 내 정규 표현이 정확하지 않거나 무엇이 될 수 있는지 모르겠다 ... 너희들이 나에게 단서를 줄 수 있기를 바란다. !
이것이 바보 같은 질문 인 경우 사과드립니다.하지만 읽어 주셔서 감사합니다.
당신은이 파일에 기록'containDiscontinuedWord'의 문제가 아니라 비트의 확인 했습니까? –
데이브 뉴톤 (Dave Newton)이 말했듯이, 아마도 당신은 잘못된 지점을보고있을 것입니다. –
정규식을 사용하기 전에 contains(); 하지만 예를 들어 String query = "이것은 내가 가장 좋아하는 노트북입니다."; 그리고 ArrayList에서 엘리먼트가 "favorite laptop"이었지만 작동하지 않을 것이지만 "favorite"또는 "laptop"일 경우에만 사용됩니다. 와 함께 잘 작동하지만, 오직 하나의 단어를 찾을 수있는 경우에만 포함되어 있습니다 ... – seas