函数只返回字符串开头的大写字母(s!)?

时间:2011-06-29 08:49:39

标签: php regex string capitalization letters

我正在尝试从PHP中的字符串中检索前几个大写字母,但我不确定是否有特定的功能来执行此操作。我是否应该使用正则表达式?如果是这样,怎么样?

这是一个应该返回的示例(INPUT => OUTPUT):

ABCD => ABCD
Abcd => A
ABcd => AB
aBCD => empty string ""
abcd => empty string ""

任何帮助将不胜感激:)

-Chris

3 个答案:

答案 0 :(得分:6)

在这种情况下,正则表达式可以帮到你。试试这个:

preg_match("/^([A-Z]+)/", $input, $matches)

如果返回true,则大写字母应为$ matches [1]。

答案 1 :(得分:2)

我认为你应该使用:

  preg_match('/^[A-Z]+/',$input, $matches);

  $matches[0];//here are your capital 

答案 2 :(得分:2)

尝试:

$input = array(
    'ABCD',
    'Abcd',
    'ABcd',
    'aBCD',
    'abcd',
);

$output = array_map(function ($str) {
    return preg_replace('/^([A-Z]*).*/', '$1', $str);
}, $input);

print_r($output);

输出:

Array
(
    [0] => ABCD
    [1] => A
    [2] => AB
    [3] => 
    [4] => 
)