Функция для возврата только заглавной буквы (s!) В начале строки? - PullRequest
2 голосов
/ 29 июня 2011

Я пытаюсь извлечь первые несколько заглавных букв из строки в PHP, но я не уверен, есть ли для этого какая-то конкретная функция. Должен ли я прибегнуть к использованию регулярных выражений? Если да, то как?

Вот пример того, что должно быть возвращено (INPUT => OUTPUT):

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

Любая помощь будет оценена :)

-Крис

Ответы [ 3 ]

6 голосов
/ 29 июня 2011

В этом случае Regex поможет вам. Попробуйте это:

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

Если это возвращает true, ваши заглавные буквы должны быть в $ match [1].

2 голосов
/ 29 июня 2011

Попробуйте:

$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] => 
)
2 голосов
/ 29 июня 2011

Я думаю, вы должны использовать:

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

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