Dart:
การค้นหาและแทนที่ข้อความ
วิธีการ:
Dart มีวิธีการที่แข็งแกร่งสำหรับการค้นหาและแทนที่ข้อความโดยตรงโดยใช้คลาส String
โดยไม่ต้องพึ่งพิงไลบรารีภายนอก นี่คือวิธีที่คุณสามารถทำได้:
การค้นหาและแทนที่พื้นฐาน
เพื่อค้นหาสตริงย่อยและแทนที่ด้วยสตริงอื่น, คุณสามารถใช้ replaceAll
:
String sampleText = "Hello, Dart! Dart is great.";
String modifiedText = sampleText.replaceAll("Dart", "Flutter");
print(modifiedText); // ผลลัพธ์: Hello, Flutter! Flutter is great.
การใช้ Regular Expressions
สำหรับความต้องการในการค้นหาและแทนที่ที่ซับซ้อนขึ้น, Dart ใช้ regular expressions ผ่านคลาส RegExp
ซึ่งทำให้สามารถจับคู่แพทเทิร์นและแทนที่ในสตริงได้:
String sampleText = "Dart 2023, Flutter 2023";
String modifiedText = sampleText.replaceAll(RegExp(r'\d+'), "2024");
print(modifiedText); // ผลลัพธ์: Dart 2024, Flutter 2024
ตัวอย่างนี้ค้นหาทุกตัวอย่างของหนึ่งหรือมากกว่าหนึ่งตัวเลข (\d+
) ในสตริงและแทนที่ด้วย “2024”.
การค้นหาโดยไม่คำนึงถึงตัวเล็กตัวใหญ่
เพื่อทำการค้นหาโดยไม่คำนึงถึงตัวเล็กตัวใหญ่, คุณสามารถแก้ไขคอนสตรัคเตอร์ RegExp
เพื่อไม่พิจารณาตัวพิมพ์:
String sampleText = "Welcome to Dart, the programming language.";
String modifiedText = sampleText.replaceAll(RegExp(r'dart', caseSensitive: false), "Flutter");
print(modifiedText); // ผลลัพธ์: Welcome to Flutter, the programming language.
การแทนที่ด้วยฟังก์ชัน
สำหรับการแทนที่ที่เป็นไดนามิกตามตัวแมทช์เอง, Dart อนุญาตให้ส่งฟังก์ชันไปยัง replaceAllMapped
ฟังก์ชันนี้สามารถทำการดำเนินการหรือการคำนวณบนลำดับที่ตรงกัน:
String sampleText = "Increment 5 by 1 to get 6.";
String incrementedText = sampleText.replaceAllMapped(RegExp(r'\d+'), (Match m) => (int.parse(m[0]!) + 1).toString());
print(incrementedText); // ผลลัพธ์: Increment 6 by 1 to get 7.
สิ่งนี้แทนที่ลำดับตัวเลขทุกตัวด้วยค่าการเพิ่มขึ้น ลำดับที่ตรงกันถูกแปลงเป็นจำนวนเต็ม, เพิ่มขึ้น, และจากนั้นแปลงกลับเป็นสตริงเพื่อแทนที่
ความสามารถในการจัดการสตริงของ Dart, โดยเฉพาะเพื่อการค้นหาและแทนที่ข้อความ, ทำให้เป็นเครื่องมือที่มีประสิทธิภาพสำหรับการประมวลผลและเตรียมข้อมูลภายในการประยุกต์ใช้ของคุณ ไม่ว่าจะใช้การแทนที่สตริงอย่างตรงไปตรงมาหรือใช้ประโยชน์จากพลังของ regular expressions, Dart มอบความยืดหยุ่นและประสิทธิภาพที่จำเป็นสำหรับการจัดการข้อความอย่างมีประสิทธิผล