자바에서 정규 표현식 사용에 익숙하지 않습니다. 내가 문자열 this/is/a/file!/path
자바에서 정규식을 사용하여 특정 문자열 패턴을 검색 하시겠습니까?
substring
와 지금
및 indexOf
이있는 경우 나는 /
및 !
inbetween 나타나는 이름의 파일을 찾을 수 있습니다하지만 난 등의 작업을 훨씬 쉽게 사용하여 정규 표현식에 있어야합니다 확신합니다.
정규 표현식을 사용하여 예제를 제공 할 수 있습니까?
자바에서 정규 표현식 사용에 익숙하지 않습니다. 내가 문자열 this/is/a/file!/path
자바에서 정규식을 사용하여 특정 문자열 패턴을 검색 하시겠습니까?
substring
와 지금
및 indexOf
이있는 경우 나는 /
및 !
inbetween 나타나는 이름의 파일을 찾을 수 있습니다하지만 난 등의 작업을 훨씬 쉽게 사용하여 정규 표현식에 있어야합니다 확신합니다.
정규 표현식을 사용하여 예제를 제공 할 수 있습니까?
자바를 사용하는 가장 간단한 방법은 String.matches
방법을 사용하는 것입니다 :
boolean matches = "abc".matches("[a-z]+");
true
를 얻을 것입니다 그.
두 번째 방법은 특정 정규식 패턴을 여러 번 사용해야하는 경우 유용합니다. 당신은 그것을 컴파일하고 다시 사용할 수 있습니다 :이 작업을 수행해야합니다 ... 당신이 1 그룹 찾기 위해 정규 사용할 수 있습니다
Pattern pattern = Pattern.compile("[a-z]+");
Matcher matcher = pattern.matcher("abc");
boolean matches = matcher.matches();
String.matches는 전체 문자열에만 일치합니다. 문제는 경로의 일치하는 하위 문자열을 추출하는 것입니다. –
뭔가를해야만 .*/([^!]*)!.*
로
이 솔루션을 테스트하지 않았습니다 ...
당신은 만들 수 있습니다 여기
이 Matcher를
에서 봐 그룹과 더 복잡한 작업Pattern pattern = Pattern.compile(yourRegex);
Matcher matcher = pattern.matcher(yourText);
while(matcher.find()) {
System.out.println(matcher.group(1));
}
을 사용할 수 있습니다 Pattern 객체를 정규 표현식으로 만든 다음 그것으로부터 pa까지 matcher 객체를 만든다. String을 rse하십시오.
String regex = ".*/(.*)!";
Pattern p = Pattern.compile (regex);
Matcher m = p.matcher(StringToBeMatched);
if (m.find()) {
String filename = m.group (1);
}
이 솔루션을 테스트하지 않았습니까? 코드는 정확하지만 정규식은 컴파일되지 않습니다. –
는 정규식을 수정했습니다. –
이 문제의 해결 방법은 가장 간단하지만 가장 빠릅니다. 문자열의'file' 부분과 다른 것을 읽고 싶지 않으면 RegEx를 생각하지 마십시오. – adarshr
Google은 친구입니다. http://adocs.oracle.com/javase/tutorial/essential/regex/ –
@adarshr, 귀하의 의견을 보내 주셔서 감사합니다;) – Johnydep