我正在编写一个脚本,该脚本将餐厅菜单的字符串按大写字母分割。不幸的是,在捷克语中,一些单词以带有变音符号的特殊字符开头。通过“常规”大写字母拆分菜肴效果很好,但我的正则表达式对于某些特殊字符是不区分大小写的,导致它用例如Š来拆分字符串时应该只按Š拆分。奇怪的是,一些特殊字符工作得非常好,到目前为止唯一有问题的字母是š/Š。 请问有人可以帮忙吗?
$dishes = preg_split('/(?=[ABCDEFGHIJKLMNOPQRSTUVWXYZÁČĎÉĚÍŇÓŘŠŤÚŮÝŽĹÔÄËÏÖÜŸ])/', $dishes);
print_r($dishes);
以上代码返回
Array
(
[0] =>
[1] => Vepřová plec na paprice s těstovinami
[2] => Domácí sekaná s bramborovou ka
[3] => ší
[4] => Těstoviny s rajským jablkem, olivami a žervé
[5] => Domácí sekaná s e svíčkovou omáčkou
[6] => Uzená kýta s čočkou na kyselo a vejcem
[7] => Vepřové nudličky se zeleninou a rýží
[8] => Pečená vepřová plec na medu a pivu s bramborami
[9] => Plzeňský gulá
[10] => š
[11] => Hovězí zadní se svíčkovou omáčkou, citron, brusinky,
[12] => šlehačka
)
(don't mind the first empty row) Thank you!
/u
修饰符。尝试$dishes = preg_split('/(?=[ABCDEFGHIJKLMNOPQRSTUVWXYZÁČĎÉĚÍŇÓŘŠŤÚŮÝŽĹÔÄËÏÖÜŸ])/u', $dishes);
。 - Wiktor Stribiżewpreg_split('/(?=\p{Lu})/u', $dishes);
- Lucas Trzesniewski\p{Lu}
可能会过度匹配。 - Wiktor Stribiżew