preg_replace ('/σ/', 'ς', $cat_name);
如何使用正则表达式仅更改字符串中任何单词的最后一个字母?
我使用 mb_strtolower() 将希腊语中的字符串从大写更改为小写,但我对 Final 's' 有问题。
how can change only the last letter of any word of a string with regular expressions?
I use mb_strtolower() for change strings from upper to lower in Greek language and I have problem with final 's'.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
使用 单词边界 --
\b
-- 来匹配单词的开头或结尾。尝试Use a word boundary --
\b
-- to match the start or end of a word. Try编辑2:
编辑:显然,这不适用于希腊字母,
preg_replace
将匹配“f”,而不是西格玛。并不是说我懂任何希腊语,但是
σ
被标记为“希腊小写字母sigma”,所以你要求小写版本,它应该仍然给出σ
。mb_strtolower()
应该可以工作。你可能做错了什么。发布您的程序的相关部分。无论如何,使用
preg_replace
并假设您的脚本和$cat_name
均以 UTF-8 编码,例如,如果
$cat_name == "sdfÉ"< /code>,这给出了
sdfé
。EDIT2:
EDIT: Apparently, this doesn't work for greek leters,
preg_replace
will match "f", not the sigma.Not that I know any greek, but
σ
is labelled as "Greek small letter sigma", so you ask for the lowercase version, it should still giveσ
.mb_strtolower()
should work. You're probably doing something wrong. Post the relevant portion of your program.Anyway, with
preg_replace
and assuming both your script and$cat_name
are encoded in UTF-8, it's:for instance, if
$cat_name == "sdfÉ"
, this givessdfé
.我使用的代码是:
mb_internal_encoding(“ISO-8859-7”);
$cat_name=mb_strtolower($categories_name);
$cat_name=preg_replace('/σ\b/', 'ς', $cat_name);
问题是当我使用
$cat_name=preg_replace('/σ/', 'ς', $cat_name);正确工作并将每个“σ”替换为“ς”
我的服务器有 PHP 5.2.6-1+lenny8 和 Suhosin-Patch 0.9.6.2 (cli)(内置:2010 年 3 月 14 日 09:07:33)
本地在我的笔记本电脑中将 Xamp for windows 与 PHP 版本 5.3.1 一起使用,并且开关 \b 有效。
那么问题出在不同版本的 Php 或 php.ini 中?
谢谢各位的回复..
The code that I use is:
mb_internal_encoding("ISO-8859-7");
$cat_name=mb_strtolower($categories_name);
$cat_name=preg_replace('/σ\b/', 'ς', $cat_name);
The problem is that when I use
$cat_name=preg_replace('/σ/', 'ς', $cat_name); work right and replace every 'σ' with 'ς'
My server has PHP 5.2.6-1+lenny8 with Suhosin-Patch 0.9.6.2 (cli) (built: Mar 14 2010 09:07:33)
Local in my laptop I use Xamp for windows with PHP Version 5.3.1 and the switch \b work.
So the problem is in the different version of Php or in php.ini ?
Thanks for the replies..