บทความ:
Perl
PHP
HTML
CSS
XML
DTD
XSD
RSS
WSDL
Linux
Site Map
Board
Connect Us: facebooktwitter

การค้นหาและแทนที่ String

นนทชัย ทรัพย์ทวีพงศ์ 2009-08-02 19:11:42  ให้คะแนนบทความนี้(0)  ลดคะแนนบทความ(0)  จำนวน Comment(0)  จำนวนคนอ่าน(688)  

เมื่อเราต้องการค้นหาคำ (หรือแทนที่ด้วย) ในตัวแปรสตริง เราสามารถกำหนดรูปแบบการค้นหาหรือคำที่ใช้ในการค้นหาได้ โดยรูปแบบในการค้นหาและแทนที่คำมีดังนี้

# s/regular expression/string ที่ต้องการแทนที่/
# เช่น
$pet = "I love my cat.\n";
$pet =~ s/cat/dog/;
print $pet;
# $pet = "I love my dog.\n";
# หมายความว่า ค้นหาคำว่า cat แล้วแทนที่ด้วยคำว่า dog

แต่ในกรณีที่มีคำที่เราต้องการแทนที่หลายคำในตัวแปรนั้น ๆ เราต้องเพิ่ม Flag เข้าไปดังนี้

$pet = "I love my cat. My cat is genuis.\n";
$pet =~ s/cat/dog/g;
print $pet;
# $pet = "I love my dog. My dog is genuis.\n";
# ถ้าเราไม่ใส่ g เข้าไปข้างหลังมันจะทำการแทนที่คำแค่ตัวที่พบครั้งแรกเพียงตัวเดียว

เราสามารถใช้ subexpression ที่มันทำการ matching กับ expression ได้โดยใช้ $1, $2, ... เราลองไปดูตัวอย่างเพื่อให้เห็นภาพง่ายขึ้น

$name = "Tony, King";
$name =~ s/(\w+), (\w+)/$2 $1/;
# $name = "Larray Wall"

ในบทความนี้จะเป็นสอนเกี่ยวกับวิธีการค้นหาและแทนที่คำในสตริงเท่านั้น ไม่ได้เจาะลึกไปถึงการใช้ expression หรือ sub expression เท่าไรนัก ซึ่งการใช้งาน expression และ sub expression ได้สอนไว้ในหัวข้อ expression และ sub expression แล้ว มีปัญหาหรือไม่เข้าใจสามารถ Post แจ้งได้นะครับ

แหล่งที่มา:

Related Article

Related Download

ไม่มีรายการดาวน์โหลด


Login  Login
ค้นหา  Search