การใช้เรกุลาร์เอ็กเพรสชัน

Lua:
การใช้เรกุลาร์เอ็กเพรสชัน

วิธีการ:

Lua ไม่รองรับนิพจน์ปกติเหมือนกับภาษาอื่นๆ เช่น Perl หรือ Python อย่างเช่นเดียวกัน แต่มันมอบความสามารถในการจับคู่รูปแบบที่ครอบคลุมหลายกรณีการใช้งานของนิพจน์ปกติ อย่างไรก็ตาม สำหรับรองรับนิพจน์ปกติเต็มรูปแบบ สามารถใช้ไลบรารีของบุคคลที่สามเช่น lrexlib

การจับคู่รูปแบบพื้นฐานใน Lua:

Lua มีระบบการจับคู่รูปแบบที่ทรงพลังที่คุณสามารถใช้สำหรับการแทนที่และค้นหาอย่างง่ายได้:

-- การค้นหาง่ายๆ
local str = "Hello, World!"
if string.find(str, "World") then
  print("พบการจับคู่!")
end
-- ผลลัพธ์: พบการจับคู่!

-- การแทนที่ง่ายๆ
local s = string.gsub("Lua is great!", "great", "awesome")
print(s)
-- ผลลัพธ์: Lua is awesome!

การจับคู่สตริงย่อย:

คุณสามารถจับส่วนของสตริงที่ตรงกับรูปแบบ:

local date = "Today is 17/05/2023."
local d, m, y = string.match(date, "(%d+)/(%d+)/(%d+)")
print("วัน:", d, "เดือน:", m, "ปี:", y)
-- ผลลัพธ์: วัน: 17 เดือน: 05 ปี: 2023

การใช้ lrexlib สำหรับนิพจน์ปกติ:

ในการใช้นิพจน์ปกติจริงๆ คุณสามารถติดตั้งและใช้ lrexlib โดยถือว่าคุณมีการติดตั้งแล้ว (luarocks install lrexlib-pcre) คุณสามารถทำการจับคู่รูปแบบที่ซับซ้อนได้:

local rex = require 'rex_pcre'

local text = "The rain in Spain stays mainly in the plain."
local regex = "\\bS\\w+"
local count, err = rex.gsub(text, regex, function(w)
  return w:upper()
end)
if err then
  print("ข้อผิดพลาด:", err)
else
  print("ข้อความที่แก้ไข:", text)
  print("การแทนที่ทำได้:", count)
end
-- ตัวอย่างผลลัพธ์: ข้อความที่แก้ไข: The RAIN in SPAIN stays MAINLY in the plain.
-- การแทนที่ทำได้: 3

ตัวอย่างเหล่านี้แสดงการใช้งานพื้นฐานภายในระบบการจับคู่รูปแบบของ Lua และการใช้พลังของนิพจน์ปกติผ่าน lrexlib ไม่ว่าคุณจะทำการแก้ไขสตริงแบบง่ายหรือต้องการความสามารถทั้งหมดของนิพจน์ปกติ Lua ร่วมกับไลบรารีที่ทรงพลังสามารถตอบสนองความต้องการของคุณได้