stackoverflow を含め、これがオンラインのどこにも見つからないことにかなり驚きました。これを実現するために PHP 関数 preg_replace で使用する正規表現を探しています。
「 a 」の後に母音が続くテキストの任意の部分を見つけ、英語の文法規則に従って「 a 」を「 an 」に変換します。
例えば:
「リンゴ」は「リンゴ」に変換されます。
「イグルー」は「イグルー」に変換されます。
などなど
理想的には、関数は大文字と小文字を区別しません。本当に印象的なのは、元の大文字と小文字を保持できる場合です。たとえば、「A」は「An」に変換され、次の単語の大文字と小文字はそのままになります。たとえば、「an American」は「」にはなりません。アメリカ人」。
これはまさに正規表現が理想的であり、多くの人が便利だと思うようなものに思えますが、私にはわかりません。これについての助けに感謝します。
私は現在これを試しています:
preg_replace("/ a?i ([aeio])?i/", "an $1", $string)
コメンテーターが正当に指摘したように、これは a / an の問題を完全に解決するものではありません。これは文字だけでなく音にも基づいているからです。ただし、このような問題の大部分が修正され、人間の編集時間が節約されるため、「少しでも役立つ」という意味で、それでも価値があると思います。