Dart:
การใช้นิพจน์ปกติ
วิธีการ:
Dart ใช้คลาส RegExp
สำหรับ regular expressions ต่อไปนี้เป็นตัวอย่างพื้นฐานในการจับคู่รูปแบบง่ายๆ ภายในสตริง:
void main() {
var pattern = RegExp(r'\bDart\b');
var text = 'Learning Dart programming is exciting.';
if (pattern.hasMatch(text)) {
print('Match found!');
} else {
print('No match found.');
}
// ผลลัพธ์: Match found!
}
ในการสกัดค่าตรงจากสตริง คุณสามารถใช้เมธอด allMatches
ซึ่งเมธอดนี้จะส่งคืนการจับคู่เป็น iterable:
void main() {
var pattern = RegExp(r'\b\w+\b');
var text = 'Dart is awesome!';
var matches = pattern.allMatches(text);
for (final match in matches) {
print(match.group(0)); // สิ่งนี้จะพิมพ์ substrings ที่จับคู่ได้
}
// ผลลัพธ์:
// Dart
// is
// awesome
}
การแทนที่ข้อความสามารถทำได้โดยใช้เมธอด replaceFirst
หรือ replaceAll
:
void main() {
var pattern = RegExp(r'\bDart\b');
var text = 'Dart is not just a dart.';
// แทนที่เหตุการณ์แรก
var modifiedText = text.replaceFirst(pattern, 'Flutter');
print(modifiedText);
// ผลลัพธ์: Flutter is not just a dart.
// แทนที่ทุกเหตุการณ์
modifiedText = text.replaceAll(pattern, 'Flutter');
print(modifiedText);
// ผลลัพธ์: Flutter is not just a flutter.
}
การแยกสตริงด้วยรูปแบบ regex เป็นเรื่องง่ายด้วยเมธอด split
:
void main() {
var pattern = RegExp(r'\s+'); // ตรงกับอักขระว่างใด ๆ
var text = 'Dart is fun';
var parts = text.split(pattern);
print(parts);
// ผลลัพธ์: [Dart, is, fun]
}
สำหรับการวิเคราะห์ซับซ้อนหรือการตรวจสอบที่ Dart’s RegExp
ไม่รองรับโดยตรง คุณอาจพิจารณาใช้ไลบรารีของบุคคลที่สาม แต่ไลบรารีมาตรฐานของ Dart มักเพียงพอสำหรับงาน regex ทั่วไป ชี้ให้เห็นถึงความสามารถและความหลากหลายในการจัดการ regular expressions.