คำถามติดแท็ก word-boundary

12
ขอบเขตของคำใน regex คืออะไร?
ฉันใช้ Java regexes ใน Java 1.6 (เพื่อแยกวิเคราะห์เอาต์พุตตัวเลขท่ามกลางวัตถุประสงค์อื่น ๆ ) และไม่สามารถหาคำจำกัดความที่แม่นยำของ\b("ขอบเขตคำ") ได้ ฉันเดาว่า-12น่าจะเป็น "คำจำนวนเต็ม" (จับคู่โดย \b\-?\d+\b) แต่ดูเหมือนว่าจะใช้ไม่ได้ ฉันจะขอบคุณที่ทราบวิธีจับคู่ตัวเลขที่คั่นด้วยช่องว่าง ตัวอย่าง: Pattern pattern = Pattern.compile("\\s*\\b\\-?\\d+\\s*"); String plus = " 12 "; System.out.println(""+pattern.matcher(plus).matches()); String minus = " -12 "; System.out.println(""+pattern.matcher(minus).matches()); pattern = Pattern.compile("\\s*\\-?\\d+\\s*"); System.out.println(""+pattern.matcher(minus).matches()); ผลตอบแทนนี้: true false true

7
Regex จับคู่คำทั้งหมดเท่านั้น
ฉันมีนิพจน์นิพจน์ทั่วไปที่ฉันใช้เพื่อค้นหาคำทั้งหมดในบล็อกเนื้อหาที่กำหนดไม่คำนึงถึงตัวพิมพ์เล็กและใหญ่ที่อยู่ในอภิธานศัพท์ที่เก็บไว้ในฐานข้อมูล นี่คือรูปแบบของฉัน: /($word)/i ปัญหาคือถ้าฉันใช้ /(Foo)/iแล้วคำเหมือนFoodได้รับการจับคู่ จำเป็นต้องมีช่องว่างหรือขอบเขตคำทั้งสองด้านของคำ ฉันจะแก้ไขนิพจน์ของฉันให้จับคู่เฉพาะคำได้อย่างไรFooเมื่อเป็นคำที่ขึ้นต้นกลางหรือท้ายประโยค
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.