:wanwan017: ขอรบกวนและขอขอบคุณล่วงหน้าค่ะ
ได้ลองตัดสตริงหลายแบบแต่ยังไม่ได้เลย
อยากลบข้อความในวงเล็บ และ ตัววงเล็บ ออกจากประโยค ต่างๆใน text file ค่ะ
น่าจะต้องเีขียน php ไปอ่านยังไงดี
ตัวอย่างข้อความเช่น
Tiger(เสือ) 30 ตัว
Zebra (ม้าลาย) 6 ตัว
Fish (ปลา)1 ตัว
อยากเข้าไปลบ วงเล็บและคำในวงเล็บ ให้ได้ output ประมาณว่า
Tiger 30 ตัว
Zebra 6 ตัว
Fish 1 ตัว
:wanwan017:
echo preg_replace('/(\(.*)\)/','','Tiger(เสือ) 30 ตัว');
ครับผม :wanwan017:
แก้ใขนิสนึง
แนะนำเป็นไอเดีย ไปแล้วกันนะคับ
ฟังก์ชั่น strrpos(); ใช้หาตำแหน่งของ string ที่เราต้องการ เมื่อได้ตำแหน่งแล้วก็นำไปตัดส่วนที่เราไม่ต้องการทิ้ง เช่น
$str="Tiger(เสือ) 30 ตัว";
$first_position = strrpos($str,"("); // รีเทิร์น 5
$second_position = strrpos($str,")"); // รีเทิร์น 10
จากนั้น ใช้ฟังก์ชั่น substr();
echo substr($str,0,5); // return Tiger
echo substr($str,-9); // return 30 ตัว
-9 มาจาก จำนวนสตริงทั้งหมดลบด้วย $second_position (19-10=9)
มีวิธีมากมายอีก 108 วิธีให้เลือกใช้ ผมพลันคิดขึ้นมาได้ประมาณนี้ครับ
$str = trim(preg_replace('/\s*\([^)]*\)/', '', $str));
$string = 'Tiger(เสือ) 30 ตัว';
echo preg_replace("/\([^)]+\)/",'', $string;
<?php
$data ='Tiger(เสือ) 30 ตัว
Zebra (ม้าลาย) 6 ตัว
Fish (ปลา)1 ตัว';
echo preg_replace('/\(.+?\)/','',trim($data));
?>
อ้างถึงจาก: suphot.s ใน 09 กรกฎาคม 2013, 03:54:00
$str = trim(preg_replace('/\s*\([^)]*\)/', '', $str));
แนะนำตามนี้ครับ