Найти строку с одинарной кавычкой - PullRequest
0 голосов
/ 18 апреля 2011

У меня есть массив строк.Мне нужны все строки, которые не содержат специальных символов.Допускается только от a до z.Есть ли метод с использованием регулярных выражений или есть строковая функция?

Ответы [ 2 ]

0 голосов
/ 18 апреля 2011
$array = "your_array";
$output_array = array();
foreach ($array as $elem) {
    if ( preg_match('/^[a-zA-Z]{1,}$/', $elem)) {
        $output_array[] = $elem;
    }
}

в output_array будет ваши данные

0 голосов
/ 18 апреля 2011

Вы можете использовать регулярное выражение ^[a-zA-Z]*$, которое соответствует строкам, которые содержат только от A до Z и от a до z.(Это также будет соответствовать пустой строке).

Объяснение:

  • ^ - это якорь, который привязывает регулярное выражение в начале строки (поэтому регулярное выражение начинает совпадать сначало строки)
  • [a-zA-Z] - это класс символов, который содержит символы, которые мы хотим сопоставить
  • * указывает, что он должен совпадать ноль или более раз (используйте + дляодин или несколько раз)
  • $ является привязкой для конца строки, поэтому регулярное выражение должно прекратить сопоставление в конце строки, иначе совпадение не будет.

Вы используете preg_match, чтобы проверить одну строку, чтобы увидеть, соответствует ли она шаблону (preg_match возвращает 0, если нет совпадения, поэтому мы просто проверяем, есть ли совпадение):

if ( preg_match('/^[a-zA-Z]*$/', $subject) !== 0 ){
    //match

Следовательнозатем вы можете перебрать массив строк и создать новый массив из тех, которые соответствуют шаблону

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...