セグメントに分割できない規則的な屈折パターンがあるとします。例えば。 (単語の中にいくつかの文字を追加する)か、母音を変更する(ablaut)ことができます。ドイツ語の例を考えてみましょう。Perl 6でリテラル正規表現を変更できますか?
my @words = <Vater Garten Nagel>;
my $search = "/@words.join('|')/".EVAL;
"mein Vater" ~~ $search;
say $/; # 「Vater」
すべての3つのドイツ語の単語は、彼らの第二の手紙「」を「A」を変更することにより、複数形。だから "Vater"→ "Väter"、 "Garten"→ "Gärten"、 "Nagel"→ "Nägel"
$search
正規表現を複数の形式に一致するように変更する方法はありますか? は、ここに私が探しているものです:
my $search_ä = $search.mymethod;
"ihre Väter" ~~ $search_ä;
say $/; # 「Väter」
はもちろん、私は新しいregex
に@words
配列と「プリコンパイル」を、それを変更することができます。しかし、既存のregex
を直接変更することは可能であれば可能です。
作業状態とあなたのコードを決定した後は十分に速くはありません。 –
@BradGilbert、この最適化をデフォルトで使用する場合の可能性のある欠点は何ですか(一般に、私は何百もの検索キーと巨大なテキストコーパスを扱いますので、コードの柔軟性が低く、エレガントでないことを除けば。 –