เมื่อฉันพัฒนาเมื่อไม่นานมานี้ฉันต้องอ่านเนื้อหาแนะนำของบทความ (นั่นคือ 200 ตัวอักษรแรก) ฉันใช้ฟิลด์ที่ซ่อนอยู่ บางคนอาจถามและพื้นหลังก็สามารถสกัดกั้นตัวละครได้ นั่นเป็นเพราะตัวแก้ไขมีแท็ก HTML ดังนั้นพื้นหลังจำเป็นต้องประมวลผลการแสดงออกปกติของแท็ก HTML ฉันค้นหาอินเทอร์เน็ตเมื่อไม่กี่วันที่ผ่านมาและพบว่าชั้นเรียนที่มีคนเขียนถูกแบ่งปันกับทุกคน อย่าล้าสมัย ...
นำเข้า java.util.regex.matcher; นำเข้า java.util.regex.pattern; /** * <p> * ชื่อเรื่อง: คลาสเครื่องมือนิพจน์ทั่วไปที่เกี่ยวข้องกับ HTML * </p> * <p> * คำอธิบาย: รวมถึงการกรองแท็ก HTML, การแปลงแท็ก HTML และแทนที่แท็ก HTML เฉพาะ * </p> * <p> * Copyright: Copyright (C) 2006 * */ คลาสสาธารณะ HTMLEGEXPUTIL {สตริงคงสุดท้ายส่วนตัว regXPFORHTML = "<([^>] *)>"; // กรองแท็กทั้งหมดที่เริ่มต้นด้วย <และจบด้วย> สตริงคงสุดท้ายส่วนตัว regxpforimgtag = "<// s*img // s+([^>]*) // s*>"; // ค้นหา img tag private private final String regxpforimatagattrib = "src =/" ([^/"]+)/" "; // ค้นหาแอตทริบิวต์ src ของแท็ก img/** * */public htmlregexputil () {// toDo @Return String */ Public String replacetag (อินพุตสตริง) {ถ้า (! Filter.append ("<"); หยุดพัก; กรณี '&': กรอง. Append ("&"); หยุดพัก; ค่าเริ่มต้น: กรอง. Append (c); }} return (filtered.toString ()); } / ** * ฟังก์ชั่นพื้นฐาน: ตรวจสอบว่ามีแท็กอยู่ * <p> * * @param อินพุต * @return บูลีน * / บูลีนสาธารณะ hasspecialchars (อินพุตสตริง) {boolean flag = false; if ((อินพุต! = null) && (input.length ()> 0)) {char c; สำหรับ (int i = 0; i <= input.length () - 1; i ++) {c = input.charat (i); สวิตช์ (c) {case '>': flag = true; หยุดพัก; กรณี '<': flag = true; หยุดพัก; case '"': flag = true; break; case '&': flag = true; break;}}} return flag;} / ** * ฟังก์ชั่นพื้นฐาน: ตัวกรองแท็กทั้งหมดเริ่มต้นด้วย" <"และลงท้ายด้วย"> " * <p> * @param str * @@return String * pattern.matcher(str); StringBuffer sb = new StringBuffer(); boolean result1 = matcher.find(); while (result1) { matcher.appendReplacement(sb, ""); result1 = matcher.find(); } matcher.appendTail(sb); return sb.toString(); } /** * Basic function: filtering specified tag* <p> * * @param str*@param tag*ระบุแท็ก*@return string*/สตริงคงที่ public fithtmltag (สตริง str, แท็กสตริง) {สตริง regxp = "<// s*" + แท็ก + "// s + (^>]*) // s*>" Boolean result1 = matcher.find (); ส่งคืน sb.toString (); }/** * ฟังก์ชั่นพื้นฐาน: แทนที่แท็กที่ระบุ * <p> * * @param str * @param beforetag * ฉลากเพื่อแทนที่ * @param tagattrib * ค่าแอตทริบิวต์ฉลากเพื่อแทนที่ * @param startTag * แท็กเริ่มแท็กใหม่ * @param endtag * แท็กใหม่แท็ก String แทนที่ HTMLTAG (สตริง str, สตริง beForetag, สตริง tagattrib, สตริง startTag, endtag สตริง) {สตริง regxpfortag = "<// s*" + beforetag + "// s + ([^>]*) // s*>"; String regxpfortagattrib = tagattrib + "=/" ([^/"] +)/" "; รูปแบบรูปแบบ FOATNEFORTAG = Pattern.Compile (regXPfortag); รูปแบบ patternforattrib = pattern.compile matcherfortag.find (); endtag);ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น