หาตำแหน่งของข้อความย่อยในข้อความหลัก (0-indexed) โดยคืนค่า -1 หากไม่พบ
| อาร์กิวเมนต์ | ชนิด | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|---|
| text | text | ข้อความหลักที่ต้องการค้นหา | |
| substring | text | ข้อความย่อยที่ต้องการหาตำแหน่ง | |
| [occurrence]ไม่บังคับ | number or Occurrence value | Occurrence.First | Occurrence.First (ค่าเริ่มต้น) = หาตำแหน่งแรก, Occurrence.Last = หาตำแหน่งสุดท้าย |
| [comparer]ไม่บังคับ | function | Comparer.Ordinal (case-sensitive) | ฟังก์ชันสำหรับควบคุมการเปรียบเทียบ เช่น Comparer.Ordinal (case-sensitive), Comparer.OrdinalIgnoreCase (case-insensitive) |
[ ] = อาร์กิวเมนต์ที่ไม่บังคับ
Text.PositionOf ใช้สำหรับหาตำแหน่งแรก (หรือการเกิดขึ้นที่ระบุ) ของข้อความย่อย (substring) ภายในข้อความหลัก นับตำแหน่งจากตัวอักษรตัวแรก (Index 0)
ที่เจ๋งคือ ฟังก์ชันนี้รองรับการค้นหาแบบ case-sensitive หรือ case-insensitive ผ่านพารามิเตอร์ comparer ซึ่งทำให้คุณควบคุมพฤติกรรมการเปรียบเทียบได้ละเอียด
ส่วนตัวผม มักใช้ Text.PositionOf ร่วมกับ Text.Range เพื่อแยก (extract) ส่วนของข้อความจากตำแหน่งที่หาได้ นั่นคือการรวมกำลังของสองฟังก์ชันเข้าด้วยกัน 😎
ตัว 'o' ปรากฏครั้งแรกที่ตำแหน่ง Index 4 (H=0, e=1, l=2, l=3, o=4)
ไม่พบ 'xyz' ในข้อความจึงคืนค่า -1
หา "apple" ตัวสุดท้ายที่ตำแหน่ง 12 (ครั้งแรกที่ 0, ครั้งที่สองที่ 6, ครั้งที่สามที่ 12)
ค้นหา "HELLO" โดยไม่สนใจขนาดตัวอักษร พบที่ตำแหน่ง 0
หาตำแหน่งของ ": " จากนั้นแยกข้อความหลังจากตัวคั่นออกมา
Text.Contains เพียงแล้วบอกว่าข้อความย่อยอยู่ในข้อความหรือไม่ (true/false) ส่วน Text.PositionOf บอกตำแหน่งที่แน่นอน ถ้าไม่พบ Text.PositionOf คืนค่า -1
ข้อความย่อยที่คุณค้นหาไม่พบในข้อความหลัก ลองตรวจสอบการสะกดและพิจารณาใช้ Comparer.OrdinalIgnoreCase หากต้องการค้นหาแบบไม่สนใจขนาดตัวอักษร
Index 0 คือตำแหน่งของตัวอักษรตัวแรก ดังนั้น Index 0 = ตัวแรก, Index 1 = ตัวที่สอง เป็นต้น (0-indexed system)
ปัจจุบัน Text.PositionOf รองรับเฉพาะ Occurrence.First และ Occurrence.Last หากต้องการตำแหน่งที่สองให้ใช้ Text.PositionOfAny หรือสร้าง Custom Function ด้วย List.FindIndex
ฟังก์ชันที่ผู้เขียนโยงไว้กับ Text.PositionOf จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง
Text.Contains ใช้สำหรับตรวจสอบว่าข้อความที่กำหนด (text) มีข้อความย่อยที่ต้องการค้นหา (substring) อยู่ภายในหรือไม่ ส่งคืนค่า true หรือ false
Text.EndsWith ตรวจสอบว่าข้อความหลักลงท้ายด้วยข้อความย่อย (substring) ที่กำหนดหรือไม่ คืนค่า true หากตรงกัน และ false หากไม่ตรงกัน สามารถใช้ Comparer เพื่อควบคุม Case Sensitivity
Text.Middle ใช้สำหรับดึงข้อความตั้งแต่ตำแหน่งที่ระบุไปจำนวนอักขระที่กำหนด หากไม่ระบุจำนวนตัวอักษร จะดึงจากตำแหน่งเริ่มต้นไปถึงท้าย
Text.PositionOfAny ใช้สำหรับค้นหาตำแหน่งแรกของอักขระใดๆ ในรายการที่ระบุ เป็นประโยชน์สำหรับการค้นหาเครื่องหมายพิเศษ สระ หรืออักขระที่ระบุ
Text.Range ใช้สำหรับดึงข้อความตั้งแต่ตำแหน่งที่ระบุไปยังท้ายสตริง หรือจำนวนอักขระที่กำหนด ถ้าจำนวนอักขระไม่พอ ฟังก์ชันจะคืนค่าเท่าที่หาได้
Text.StartsWith ตรวจสอบว่าข้อความหลักขึ้นต้นด้วยข้อความย่อยที่กำหนดหรือไม่ โดยคืนค่า true หรือ false สามารถระบุ Comparer เพื่อเลือกว่าจะให้ตรวจสอบแบบ Case Sensitive (ไว) หรือ Case Insensitive (ไม่ไว) ได้
ยังไม่มีบทความที่เกี่ยวข้องกับฟังก์ชันนี้
Comments
อีเมลของคุณจะไม่ถูกเผยแพร่