แนะนำ: การเรียนรู้การแสดงออกปกติของ ASP เราสามารถตรวจสอบความถูกต้องตามกฎหมายของข้อมูลต่าง ๆ โดยวัตถุ "นิพจน์ทั่วไป" ก่อนอื่นมาทำความเข้าใจว่าวัตถุ "นิพจน์ทั่วไป" ของ VBScript คืออะไรกันแน่ ก่อนอื่นดูโปรแกรม:
วัตถุ Regexp ให้ความสามารถในการสนับสนุนการแสดงออกปกติอย่างง่าย
การใช้งานของ regexp:
| ต่อไปนี้เป็นเนื้อหาที่ยกมา: ฟังก์ชั่น regexptest (patrn, strng) Dim Regex, Match, Matches 'ตัวแปร ตั้งค่า regex = ใหม่ regexp 'สร้างนิพจน์ทั่วไป regex.pattern = โหมด Set Patrn ' regex.ignorecase = true 'ตั้งค่าว่าอักขระนั้นมีความอ่อนไหวหรือไม่ regex.global = true 'ตั้งค่าความพร้อมใช้งานทั่วโลก Set Matches = regex.execute (strng) 'ทำการค้นหา สำหรับการแข่งขันแต่ละนัดในการแข่งขันของการแข่งขันคอลเลกชันการจับคู่ retstr = retstr & match พบที่ตำแหน่ง retstr = retstr & match.firstindex & ค่าจับคู่คือ ' retstr = retstr & match.value & ' & vbcrlf ต่อไป regexptest = retstr ฟังก์ชันสิ้นสุด |
msgbox (regexptest (IS., IS1 IS2 IS3 IS3)))
คุณสมบัติของวัตถุ regexp
◎คุณลักษณะทั่วโลก
ชุดคุณสมบัติทั่วโลกตั้งค่าหรือส่งคืนค่าบูลีนที่ระบุว่ารูปแบบตรงกับทั้งหมดหรือเพียงตัวแรกในระหว่างสตริงการค้นหาทั้งหมด
ไวยากรณ์
Object.global [= true | เท็จ ]
พารามิเตอร์วัตถุเป็นวัตถุ regexp เสมอ หากการค้นหาถูกนำไปใช้กับสตริงทั้งหมดคุณสมบัติทั่วโลกมีค่าของจริงมิฉะนั้นค่าของมันจะเป็นเท็จ การตั้งค่าเริ่มต้นเป็นจริง
การใช้แอตทริบิวต์ทั่วโลก (เปลี่ยนค่าที่กำหนดให้กับแอตทริบิวต์ทั่วโลกและสังเกตผลกระทบ):
| ต่อไปนี้เป็นเนื้อหาที่ยกมา: ฟังก์ชั่น regexptest (patrn, strng) Dim Regex 'สร้างตัวแปร ตั้งค่า regex = ใหม่ regexp 'สร้างนิพจน์ที่เป็นที่ยอมรับ regex.pattern = โหมด Set Patrn ' regex.ignorecase = true 'ตั้งค่าว่าตัวอักษรมีความอ่อนไหวหรือไม่ regex.global = true 'ตั้งค่าธรรมชาติเต็มรูปแบบ regexptest = regex.execute (strng) 'ทำการค้นหา ฟังก์ชันสิ้นสุด |
msgbox (regexptest (IS., IS1 IS2 IS3 IS3)))
◎คุณลักษณะที่ไม่รู้
คุณสมบัติที่ไม่รู้ว่าตั้งค่าหรือส่งคืนค่าบูลีนที่ระบุว่าการค้นหาโหมดนั้นมีความละเอียดอ่อนตัวพิมพ์ใหญ่หรือไม่
ไวยากรณ์
Object.ignorecase [= true | เท็จ ]
พารามิเตอร์วัตถุเป็นวัตถุ regexp เสมอ หากการค้นหาเป็นกรณีที่มีความละเอียดอ่อนคุณสมบัติที่ไม่รู้จะเป็นเท็จ มิฉะนั้นจริง ค่าเริ่มต้นเป็นจริง
การใช้แอตทริบิวต์ที่ไม่รู้ (เปลี่ยนค่าที่กำหนดให้กับแอตทริบิวต์ที่ไม่รู้เพื่อสังเกตผลของมัน):
| ต่อไปนี้เป็นเนื้อหาที่ยกมา: ฟังก์ชั่น regexptest (patrn, strng) Dim Regex 'สร้างตัวแปร ตั้งค่า regex = ใหม่ regexp 'สร้างนิพจน์ทั่วไป regex.pattern = โหมด Set Patrn ' regex.ignorecase = true 'ตั้งค่าไม่ว่าจะเป็นตัวพิมพ์เล็กหรือไม่ regexptest = regex.execute (strng) 'ทำการค้นหา ฟังก์ชันสิ้นสุด |
msgbox (regexptest (IS., IS1 IS2 IS3 IS3)))
◎แอตทริบิวต์รูปแบบ
ชุดคุณสมบัติรูปแบบหรือส่งคืนรูปแบบการแสดงออกปกติที่กำลังค้นหา
ไวยากรณ์
Object.pattern [= SearchString]
ไวยากรณ์ของคุณสมบัติรูปแบบมีส่วนต่อไปนี้:
คำอธิบายไวยากรณ์:
ต้องการวัตถุ ตัวแปรวัตถุ regexp เสมอ
SearchString เป็นทางเลือก นิพจน์สตริงปกติที่ถูกค้นหา มันอาจมีอักขระนิพจน์ทั่วไปที่ตั้งอยู่ในตารางบางส่วน
ตั้งค่า
อักขระและลำดับพิเศษจะใช้เมื่อเขียนรูปแบบการแสดงออกปกติ อักขระและลำดับที่สามารถใช้งานได้มีการอธิบายไว้ด้านล่างและตัวอย่างจะได้รับ
ทำเครื่องหมายตัวละครถัดไปเป็นอักขระพิเศษหรือค่าตัวอักษร ตัวอย่างเช่น n ตรงกับอักขระ n N จับคู่การแบ่งบรรทัด Sequence/Match ตรงข้าม (Match (Match
^ จับคู่ตำแหน่งเริ่มต้นของอินพุต
$ ตรงกับจุดสิ้นสุดของอินพุต
* จับคู่อักขระก่อนหน้าเป็นศูนย์หรือหลายครั้ง ตัวอย่างเช่น Zo* สามารถจับคู่ Z และ Zoo
จับคู่อักขระก่อนหน้าหนึ่งครั้งหรือมากกว่า ตัวอย่างเช่น ZO สามารถจับคู่สวนสัตว์ได้ แต่ไม่ใช่ Z
- จับคู่อักขระก่อนหน้าเป็นศูนย์หรือหนึ่งครั้ง ตัวอย่างเช่น? ve? สามารถจับคู่ได้ในไม่เคย
- จับคู่อักขระใด ๆ นอกเหนือจากการแบ่งบรรทัด
(รูปแบบ) จับคู่รูปแบบและจดจำการแข่งขัน สตริงย่อยที่ตรงกันสามารถรับได้จากคอลเลกชันการจับคู่ผลลัพธ์โดยใช้รายการ [0] ... [n] หากคุณต้องการจับคู่อักขระวงเล็บ (และ) คุณสามารถใช้ (หรือ)
x | y ตรงกับ x หรือ y ตัวอย่างเช่น Z | อาหารสามารถจับคู่ z หรืออาหาร (z | f) OOD ตรงกับสวนสัตว์หรืออาหาร
{n} n เป็นจำนวนเต็มที่ไม่เป็นลบ ตรงกับ N Times ตัวอย่างเช่น O {2} ไม่สามารถจับคู่ o ใน BOB ได้ แต่สามารถจับคู่สอง o แรกใน foooood
{n,} n เป็นจำนวนเต็มที่ไม่เป็นลบ จับคู่อย่างน้อย n ครั้ง ตัวอย่างเช่น o {2,} ไม่ตรงกับ o ใน BOB แต่ทั้งหมดใน foooood o {1,} เทียบเท่ากับ o o {0,} เทียบเท่ากับ o*
{n, m} m และ n เป็นจำนวนเต็มที่ไม่เป็นลบ จับคู่อย่างน้อย n ครั้งสูงสุด m ตัวอย่างเช่น O {1,3} ตรงกับระบบปฏิบัติการสามตัวแรกใน Fooooood o {0,1} เทียบเท่ากับ o?
[xyz] ชุดอักขระ ตรงกับหนึ่งในตัวละครในวงเล็บ ตัวอย่างเช่น [ABC] ตรงกับ A ในธรรมดา
[^xyz] ชุดอักขระเชิงลบ จับคู่อักขระใด ๆ ที่ไม่ได้อยู่ในวงเล็บนี้ ตัวอย่างเช่น [^abc] สามารถจับคู่ p ในแบบธรรมดา
[AZ] แสดงถึงตัวละครในช่วงที่แน่นอน จับคู่อักขระใด ๆ ภายในช่วงเวลาที่กำหนด ตัวอย่างเช่น [AZ] ตรงกับลักษณะตัวอักษรตัวพิมพ์เล็กระหว่าง A และ Z
[^mz] ช่วงเวลาอักขระเชิงลบ จับคู่อักขระที่ไม่ได้อยู่ในช่วงเวลาที่กำหนด ตัวอย่างเช่น [MZ] ตรงกับอักขระใด ๆ ที่ไม่ได้อยู่ระหว่าง M และ Z
B ตรงกับขอบเขตของคำนั่นคือตำแหน่งระหว่างคำและช่องว่าง ตัวอย่างเช่น ERB ตรงกับ ER ในไม่เคย แต่ไม่ตรงกับ ER ในคำกริยา
B ตรงกับขอบเขตที่ไม่ใช่คำ EA*RB จับคู่หูไม่เคยเร็ว
D ตรงกับอักขระตัวเลข เทียบเท่ากับ [0-9]
D ตรงกับอักขระที่ไม่ใช่ตัวเลข เทียบเท่ากับ [^0-9]
f ตรงกับการแบ่งหน้า
N จับคู่อักขระตัวแบ่งบรรทัด
R ตรงกับตัวละคร Return Carriage
S จับคู่อักขระสีขาวใด ๆ รวมถึงช่องว่างแท็บการแบ่งหน้า ฯลฯ เทียบเท่ากับ [FNRTV]
S จับคู่อักขระที่ไม่ได้มีการเปลี่ยนแปลงใด ๆ เทียบเท่ากับ [^ fnrtv]
t ตรงกับอักขระแท็บ
V จับคู่อักขระแท็บแนวตั้ง
W ตรงกับตัวละครคำใด ๆ รวมถึงขีดล่าง เทียบเท่ากับ [A-ZA-Z0-9_]
W ตรงกับตัวละครที่ไม่ใช่คำใด ๆ เทียบเท่ากับ [^a-za-z0-9_]
NUM จับคู่ NUM โดยที่ NUM เป็นจำนวนเต็มบวก อ้างอิงกลับไปจำการแข่งขัน ตัวอย่างเช่น (.) 1 จับคู่อักขระที่เหมือนกันสองตัวติดต่อกัน
n ตรงกับ n โดยที่ n คือค่าการถ่ายโอนรหัสแปด ค่าการถ่ายโอนรหัสแปดจะต้องมีความยาว 1, 2 หรือ 3 ตัวเลข ตัวอย่างเช่นทั้ง 11 และ 11 จับคู่แท็บ 011 เทียบเท่ากับ 01 และ 1 ค่าการถ่ายโอนรหัสแปดค่าจะต้องไม่เกิน 256 มิฉะนั้นจะมีเพียงสองอักขระแรกเท่านั้นที่ถือว่าเป็นส่วนหนึ่งของนิพจน์ อนุญาตให้ใช้รหัส ASCII ในนิพจน์ทั่วไป
Xn จับคู่ n โดยที่ n คือค่าการถ่ายโอนรหัสหกสิบแปด ค่าการถ่ายโอนรหัสเลขฐานสิบหกต้องมีความยาวสองตัวเลขอย่างแน่นอน ตัวอย่างเช่น x41 ตรงกับ A. x041 เทียบเท่ากับ x04 และ 1 อนุญาตให้ใช้รหัส ASCII ในนิพจน์ปกติ
การใช้แอตทริบิวต์รูปแบบ:
| ต่อไปนี้เป็นเนื้อหาที่ยกมา: ฟังก์ชั่น regexptest (patrn, strng) Dim Regex 'สร้างตัวแปร ตั้งค่า regex = ใหม่ regexp 'สร้างนิพจน์ทั่วไป regex.pattern = โหมด Set Patrn ' regex.ignorecase = true 'ตั้งค่าไม่ว่าจะเป็นตัวพิมพ์เล็กหรือไม่ regexptest = regex.execute (strng) 'ทำการค้นหา ฟังก์ชันสิ้นสุด |
msgbox (regexptest (IS., IS1 IS2 IS3 IS3)))
วิธีการของวัตถุ regexp
◎ดำเนินการวิธีการ
วิธีการดำเนินการทำการค้นหานิพจน์ปกติในสตริงที่ระบุ
ไวยากรณ์
Object.execute (String)
คำอธิบายชิ้นส่วนไวยากรณ์
ต้องการวัตถุ ชื่อของวัตถุ regexp เสมอ
จำเป็นต้องใช้สตริง สตริงข้อความที่จะดำเนินการนิพจน์ทั่วไป
อธิบาย
รูปแบบการออกแบบสำหรับการค้นหานิพจน์ทั่วไปถูกตั้งค่าผ่านรูปแบบของวัตถุ regexp
วิธีการดำเนินการส่งคืนคอลเลกชันการจับคู่ที่มีวัตถุจับคู่การจับคู่แต่ละรายการที่พบในสตริง หากไม่พบการจับคู่ให้ดำเนินการส่งคืนคอลเลกชันการจับคู่ที่ว่างเปล่า
การใช้วิธีการดำเนินการ:
| ต่อไปนี้เป็นเนื้อหาที่ยกมา: ฟังก์ชั่น regexptest (patrn, strng) Dim Regex 'สร้างตัวแปร ตั้งค่า regex = ใหม่ regexp 'สร้างนิพจน์ทั่วไป regex.pattern = โหมด Set Patrn ' regex.ignorecase = false 'set sensitive case regex.global = true 'ค้นหาการแข่งขันทั้งหมด regexptest = regex.execute (strng) 'ทำการค้นหา ฟังก์ชันสิ้นสุด |
msgbox (regexptest (IS., IS1 IS2 IS3 IS3)))
◎แทนที่วิธีการ
วิธีการแทนที่แทนที่ข้อความที่พบในการค้นหานิพจน์ทั่วไป
ไวยากรณ์
Object.replace (String1, String2)
คำอธิบายชิ้นส่วนไวยากรณ์
ต้องการวัตถุ ชื่อของวัตถุ regexp เสมอ
จำเป็นต้องใช้สตริง 1 String1 คือสตริงที่จะทำการเปลี่ยนข้อความ
จำเป็นต้องใช้ String2 String2 เป็นสตริงข้อความทดแทน
อธิบาย
รูปแบบที่แท้จริงของข้อความที่ถูกแทนที่ถูกตั้งค่าผ่านคุณสมบัติรูปแบบของวัตถุ Regexp
วิธีการแทนที่ส่งคืนสำเนาของ String1 โดยที่ข้อความ regexp.pattern ถูกแทนที่ด้วย String2 หากไม่พบข้อความที่ตรงกันสำเนาของ String1 ต้นฉบับจะถูกส่งกลับ
การใช้วิธี eplace:
| ต่อไปนี้เป็นเนื้อหาที่ยกมา: ฟังก์ชั่น replacetest (Patrn, replstr) Dim Regex, Str1 'สร้างตัวแปร str1 = สุนัขจิ้งจอกสีน้ำตาลด่วนกระโดดข้ามสุนัขขี้เกียจ ตั้งค่า regex = ใหม่ regexp 'สร้างนิพจน์ทั่วไป regex.pattern = โหมด Set Patrn ' regex.ignorecase = true 'ตั้งค่าไม่ว่าจะเป็นตัวพิมพ์เล็กหรือไม่ replacetest = regex.replace (str1, replstr) 'เป็นการแทนที่ ฟังก์ชันสิ้นสุด |
msgbox (replacetest (Fox, Cat))
'แทนที่' Fox 'ด้วย' Cat '
- นอกจากนี้วิธีการแทนที่แทนที่การแสดงออกของ subexpressions ในรูปแบบ การเรียกใช้ฟังก์ชันต่อไปนี้ในตัวอย่างก่อนหน้าแทนที่คู่คำทั้งหมดในสตริงต้นฉบับ:
msgbox (replaceText ((s) (s), $ 3 $ 2 $ 1)) 'คู่ของคำ
◎วิธีทดสอบ
วิธีการทดสอบดำเนินการค้นหานิพจน์ปกติในสตริงที่ระบุและส่งคืนค่าบูลีนที่ระบุว่าพบรูปแบบการจับคู่หรือไม่
ไวยากรณ์
Object.test (String)
คำอธิบายชิ้นส่วนไวยากรณ์
ต้องการวัตถุ ชื่อของวัตถุ regexp เสมอ
จำเป็นต้องใช้สตริง สตริงข้อความเพื่อทำการค้นหานิพจน์ทั่วไป
อธิบาย
รูปแบบที่แท้จริงของการค้นหานิพจน์ทั่วไปถูกตั้งค่าผ่านคุณสมบัติรูปแบบของวัตถุ Regexp คุณสมบัติ regexp.global ไม่มีผลต่อวิธีการทดสอบ
หากพบรูปแบบการจับคู่วิธีการทดสอบจะกลับมาเป็นจริง มิฉะนั้นจะส่งคืนเท็จ
| ต่อไปนี้เป็นเนื้อหาที่ยกมา: การใช้วิธีการทดสอบ: ฟังก์ชั่น regexptest (patrn, strng) Dim regex, retval 'สร้างตัวแปร ตั้งค่า regex = ใหม่ regexp 'สร้างนิพจน์ทั่วไป regex.pattern = โหมด Set Patrn ' regex.ignorecase = false 'ตั้งค่าไม่ว่าจะเป็นตัวพิมพ์เล็กหรือไม่ retval = regex.test (strng) 'ทำการทดสอบการค้นหา ถ้า retval แล้ว regexptest = ค้นหาการแข่งขันหนึ่งรายการขึ้นไป อื่น regexptest = ไม่พบการจับคู่ สิ้นสุดถ้า ฟังก์ชันสิ้นสุด |
msgbox (regexptest (IS., IS1 IS2 IS3 IS3)))
แชร์: วิธีการส่งออกไฟล์ Excel ด้วย ASP วิธีหนึ่งในการใช้ Excel ใน ASP คือการเชื่อมโยงไฟล์ Excel เป็นฐานข้อมูลและการดำเนินการคล้ายกับการดำเนินการฐานข้อมูลการเข้าถึง แต่วิธีนี้ไม่ได้มีประโยชน์เสมอไปควรเป็นไปได้ว่า Excel ไม่ใช่ฐานข้อมูลเชิงสัมพันธ์ สำหรับรูปแบบคงที่