메타 문자 "\b "는 단어 경계와 일치하고 [a-zA-Z]는 영어 알파벳의 한 문자와 일치합니다(두 경우 모두). 간단히 말해 \\b[a-zA-Z] 표현식은 모든 단어 경계 뒤의 두 경우 모두 영어 알파벳의 단일 문자와 일치합니다.
따라서 각 단어의 첫 글자를 검색하려면 -
-
Pattern 클래스의 compile() 메서드의 위 식을 컴파일합니다.
-
Pattern 클래스의 matcher() 메서드에 대한 매개변수로 필요한 입력 문자열을 무시하고 Matcher 객체를 가져옵니다.
-
마지막으로 각 일치 항목에 대해 group() 메서드를 호출하여 일치하는 문자를 가져옵니다.
예시
import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern; public class FirstLetterExample { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("Enter sample text: "); String data = sc.nextLine(); String regex = "\\b[a-zA-Z]"; //Creating a pattern object Pattern pattern = Pattern.compile(regex); //Creating a Matcher object Matcher matcher = pattern.matcher(data); System.out.println("First letter of each word from the given string: "); while(matcher.find()) { System.out.print(matcher.group()+" "); } } }
출력
Enter sample text: National Intelligence Agency Research & Analysis Wing First letter of each word from the given string: N I A R A W