그래서 Project에서 Java의 .doc 파일에서 대문자 단어를 추출하려고합니다. 내가 정규식을 사용하고 있지만, 아래의 정규식은 옛 .vba 스크립트에서 someonelse에 의해 사용되었습니다. 나는 대문자로 둘러싸인 모든 대문자를 찾아야합니다. 예 (WORD). 나는 아래 정규식이 나를 위해 매달려 메타 문자 오류를 줄 것이다 그래서 정규식이 될 것이라고 알아.RegEx에서 Apache POI를 사용하여 대문자 단어를 추출
private static final String REGEX = "(*[A-Z]*[A-Z]*)";
private void parseWordText(File file) throws IOException {
FileInputStream fs = new FileInputStream(file);
HWPFDocument doc = new HWPFDocument(fs);
WordExtractor we = new WordExtractor(doc);
if (we.getParagraphText() != null) {
String[] dataArray = we.getParagraphText();
for (int i = 0; i < dataArray.length; i++) {
String data = dataArray[i].toString();
Pattern p = Pattern.compile(REGEX);
Matcher m = p.matcher(data);
List<String> sequences = new Vector<String>();
while (m.find()) {
sequences.add(data.substring(m.start(), m.end()));
System.out.println(data.substring(m.start(), m.end()));
}
}
}
}
위의 코드와 정규식은 괄호로 대문자 만 사용하는 것이 아니라 두 개의 대문자를 사용합니다.
Regex는 임의의 수의 왼쪽 괄호 (아무 것도 포함하지 않음) 뒤에 임의의 수의 대문자 (none 포함)와 일치하고 오른쪽 괄호 하나가 뒤에 오는 것을 말합니다. ')','(()','((((((AA)'는 모두이 정규 표현식과 일치한다. A)'또는'(AA)'? – FrankieTheKneeMan
미안하지만 잘 설명하지 못했습니다. 대소 문자는 왼쪽 괄호 뒤에 있고 오른쪽 괄호 앞에옵니다.하지만 자바에서 정규식을 사용하면 매달려 있습니다. 메타 문자 오류 – yams
두 개 이상의 대문자가 일치해야합니까? (또한 일치해야합니까?) 또한이 정규식을 컴파일하는 데 사용하는 패키지는 무엇입니까? 실제 코드를 제공 할 수 있습니까? – FrankieTheKneeMan