เมื่อวานนี้ฉันพบปัญหาเล็กๆ น้อยๆ ฉันต้องการประมวลผลผู้ใช้บางรายเป็นชุดๆ รูปแบบของผู้ใช้ที่ส่งจากแผนกต้อนรับเป็นดังนี้
ครู 10(0010)
ครู 11(0011)
ครู 9(009)
ครู 12(0012)
ครู 13(0013)
ครู 14(0014)
เดิมทีฉันต้องการใช้ String.split() และ substring() ของ Java เพื่อทำสิ่งนี้ แต่การประมวลผลหลายครั้งเป็นเรื่องยาก ดังนั้นฉันจึงใช้นิพจน์ทั่วไป แม้ว่าฉันจะเกือบลืมไวยากรณ์ไปแล้ว แต่ฉันคิดว่ามันสะดวกกว่าที่จะใช้การยืนยัน (กุญแจสำคัญคือหวังว่าผลลัพธ์จะไม่มีวงเล็บ) เปิด RegexBuddy แล้วลองดู ซึ่งทำได้ง่ายๆ:
ต่อไปนี้เป็นโค้ดการใช้งาน Java:
สุดท้ายนี้ ต่อไปนี้เป็นการยืนยันความกว้างเป็นศูนย์ที่ใช้:
การยืนยันที่กว้าง | (?=ประสบการณ์) | จับคู่ตำแหน่งก่อนประสบการณ์ |
---|---|---|
(?<=ประสบการณ์) | จับคู่ตำแหน่งหลังจากประสบการณ์ | |
(?!ประสบการณ์) | จับคู่ตำแหน่งที่ไม่ตามด้วย exp | |
(?<!ประสบการณ์) | จับคู่ตำแหน่งที่ไม่ได้นำหน้าด้วย exp |