자바로 작업하여 100,000 개가 넘는 문자열을 읽습니다. 문자열을 검색하는 키워드 목록을 가지고 있으며 문자열이 있으면 내부 처리를 수행하는 함수를 호출합니다.정확한 패턴을 추출하지 못하는 정규식
키워드의 종류는 "얼굴"입니다. 예를 들어, "페이스 북"이 아닌 "얼굴"과 일치하는 모든 패턴을 얻고 싶습니다. 나는 끈에있는 얼굴 뒤의 공백 문자를 받아 들일 수 있습니다. 그래서 문자열에 "face"또는 "faces"또는 "face"또는 "faces"와 같은 일치를 가질 수 있습니다. 나는 그것을 받아 들일 수도 있습니다. 그러나 나는 "duckface"또는 내가 정규식
Pattern p = Pattern.compile("\\s+"+keyword+"s\\s+|\\s+");
키워드가 키워드 내 목록입니다
를 작성했습니다"duckface"등을 받아 들일 수 없다,하지만 원하는 결과를 얻고 있지 않다. 내 설명을 읽고 문제가 될 수있는 것이 무엇이고 어떻게 해결할 수 있는지 제안 해 주시겠습니까?
또한 정말로 좋은 정규식 자바 페이지에 대한 포인터가 공유되어 있다면 나는 그것을 또한 높이 평가할 것이다.
당신에게 명의 참여자를 감사 ..편집
나는 나는 다음과 같은 코드를 사용하고 있습니다 작동하지 않습니다 알고 그 이유는이 빈 문자열을 반환
Pattern p = Pattern.compile("\\s+"+keyword+"s\\s+|\\s+");
Matcher m = p.matcher(myInputDataSting);
if(m.find())
{
System.out.println("Its a Match: "+m.group());
}
을 ...
을
어떻게 작동하지 않습니까? 어떤 끈이 빠졌습니까? –
대체 옵션을 괄호로 묶어야하지만''s ''옵션을 사용하려면'+ "s? \\ s +"'를 수행하는 것이 더 좋습니다. 또한'+ Pattern.quote (keyword) +'키워드를 사용하십시오. 그렇지 않으면 패턴을 엉망으로 만들 수 있습니다. – Irfy
자주 [this] (http://www.regular-expressions.info/tutorial.html) 사이트를 자습서/참조로 사용합니다. – Vic