Giả sử chúng ta có mẫu uốn đều đặn, không thể chia thành các đoạn. Ví dụ. nó có thể được trộn (thêm một số chữ cái bên trong từ) hoặc thay đổi nguyên âm ('ablaut'). Hãy xem xét một ví dụ từ tiếng Đức.Tôi có thể sửa đổi regex bằng chữ trong Perl 6 không?
my @words = <Vater Garten Nagel>;
my $search = "/@words.join('|')/".EVAL;
"mein Vater" ~~ $search;
say $/; # 「Vater」
Tất cả ba chữ Đức thành số nhiều bằng cách thay đổi thư thứ 2 của họ 'a' đến 'a'. Vì vậy, 'Vater' → 'Väter', 'Garten' → 'Gärten', 'Nagel' → 'Nägel'.
Có cách nào để sửa đổi regex $search
của mình để nó có khớp với các dạng số nhiều không? Dưới đây là những gì tôi đang tìm kiếm:
my $search_ä = $search.mymethod;
"ihre Väter" ~~ $search_ä;
say $/; # 「Väter」
Tất nhiên, tôi có thể thay đổi @words
mảng và 'tiền biên dịch' nó thành một mới regex
. Nhưng nó sẽ tốt hơn (nếu có thể) để sửa đổi trực tiếp regex
hiện tại.
Bạn chỉ nên tối ưu hóa sau khi nhận được nó để trạng thái hoạt động và sau khi xác định mã của bạn không đủ nhanh. –
@BradGilbert, những hạn chế có thể có của việc sử dụng tối ưu hóa này theo mặc định (nói chung, tôi làm việc với hàng trăm phím tìm kiếm và corpora văn bản lớn, vì vậy mà không tối ưu hóa này thực sự chậm)? Ngoại trừ các mã được ít linh hoạt và ít thanh lịch. –