这是我正在尝试做的事情。我有页面的标题。我想大写第一个字的最后一个字母每个字符串另一个大写问题
例子:
你好
你好你怎么样
我可以得到它用一个字,但我的工作如果有多个单词,就不知道如何去做。任何帮助将是伟大的!
非常感谢!
这是我正在尝试做的事情。我有页面的标题。我想大写第一个字的最后一个字母每个字符串另一个大写问题
例子:
你好
你好你怎么样
我可以得到它用一个字,但我的工作如果有多个单词,就不知道如何去做。任何帮助将是伟大的!
非常感谢!
既然你知道这是如何工作有1个字的方式,你只需要得到第一个词,然后把你的算法。
preg_replace_callback
与"/^(\w+)/"
preg_replace_callback:http://php.net/manual/en/function.preg-replace-callback.php
更新 - 工作代码:
$string = "This is a test";
$string = preg_replace_callback(
'/^(\w+)/',
create_function(
'$matches',
'return yourUCLastAlgorithm($matches[0]);'
),
$string
);
echo $string;
UPDATE2 - 使用的preg_replace与e修饰符:
$string = "This is a test";
$string = preg_replace(
'/^(\w+)/e',
'yourUCLastAlgorithm("$1")',
$string
);
echo $string;
难道你不认为lamda函数的正则表达式在这里有点矫枉过正,当你可以用泛型函数来做到这一点吗? –
有另一个想法:使用带e修饰符的preg_replace。 –
通常,我总是尝试使用regexps而不是自定义拆分解决方案。 –
试试这个:
$string = preg_replace('/^([ ]+)?([^ ]*)([a-z])?(.*)?$/i', "$1.$2.strtoupper($3).$4", $string);
为什么如果不需要使用正则表达式?它太贵了 –
因为这是第一个想法^^' –
'This is a test' =>'This.strtoupper()。是一个测试'请在发布前检查。 –
为什么哦,为什么,这是正常的语法。 – 2011-08-01 08:42:13
尝试向我们展示您目前拥有的代码。 – Matt