เมทาคแรกเตอร์ “\\b” จับคู่ขอบเขตของคำ และ [a-zA-Z] จับคู่ตัวอักษรภาษาอังกฤษหนึ่งตัว (ทั้งตัวพิมพ์เล็กและใหญ่) สรุปคือ นิพจน์ \\\\b[a-zA-Z] จะจับคู่ตัวอักษรภาษาอังกฤษตัวเดียว ทั้งสองรูปแบบ หลังจากขอบเขตคำทุกครั้ง
ดังนั้น เพื่อดึงตัวอักษรแรกของแต่ละคำ:
- คอมไพล์นิพจน์ดังกล่าวด้วยเมธอด
compile()ของคลาสPattern - รับออบเจ็กต์
Matcherโดยส่งสตริงอินพุตที่ต้องการเป็นพารามิเตอร์ให้เมธอดmatcher()ของคลาสPattern - สุดท้าย สำหรับแต่ละการจับคู่ ให้ดึงตัวอักษรที่จับคู่ได้โดยเรียกเมธอด
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]"; // สร้างออบเจ็กต์ Pattern Pattern pattern = Pattern.compile(regex); // สร้างออบเจ็กต์ Matcher 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