正規表現コードを文字列突然変異のために変更して、アクセント付き文字にも対応できるようにするにはどうすればよいですか? たとえば、 "amor"のregesの文字列の突然変異は、 "āmōr"のものと同じでなければなりません。私は単に( '< = [aeiouāēīūūăĕĭŏŭ])'のようなアクセント付きの文字を含むようにしようとしましたが、うまくいきませんでした。正規表現で文字列の突然変異のアクセント記号付き文字を使用する
マイコード:
$hyphenation = '~
(?<=[aeiou]) #each syllable contain a vowel
(?:
# Muta cum liquida
((?:[bcdfgpt]r | [bcfgp] l | ph [lr] | [cpt] h | qu) [aeiou] x)
|
[bcdfghlmnp-tx]
(?:
# ct goes together
[cp] \K (?=t)
|
# two or more consonants are splitted up
\K (?= [bcdfghlmnp-tx]+ [aeiou])
)
|
# a consonant and a vowel go together
(?:
\K (?= [bcdfghlmnp-t] [aeiou])
|
# "x" goes to the preceding vowel
x \K (?= [a-z] | (*SKIP)(*F))
)
|
# two vowels are splitted up except ae oe...
\K (?= [aeiou] (?<! ae | oe | au | que | qua | quo | qui))
)
~xi';
// hyphention
$result = preg_replace($hyphenation, '-$1', $input);
問題)。私は間違ったアプローチをしていると思う。 –
最初に[発音区別記号を削除する](http://stackoverflow.com/questions/3635511/remove-diacritics-from-a-string)して、必要なものと一致させることができます。あるいは '\ pL'(任意の言語の文字)や' \ pM'(文字とその派生語を一致させる)をunicode(u)フラグで指定することもできます。 –
@Croutonix後で分音記号が必要です。分音符号を削除して後でtiを再度貼り付けることはできますか? '\ pL'または '\ pM'は関数のために何を持っていますか? –