Regex для удаления года из строки PHP - PullRequest
6 голосов
/ 20 мая 2011

Я создал базу сигарет и торговых карточек. Каждый заголовок набора имеет год, связанный с ним. Например, 1943 или 2011. Год всегда длиной 4 символа, но может быть где угодно в строке.

Может ли кто-нибудь помочь мне создать регулярное выражение, которое найдет год в строке. Я пытался '/d{4}\b/', но это не удается.

Ответы [ 5 ]

8 голосов
/ 20 мая 2011
(19|20)[0-9][0-9]

Это будет читать только в 1900 и 2000 годах.

5 голосов
/ 20 мая 2011

Попробуйте это:

/\b\d{4}\b/

это будет соответствовать 4 цифрам, вставленным без слов

1 голос
/ 20 мая 2011

d{4}\b будет соответствовать четырем d на границе слова.Вы забыли обратную косую черту в классе символов: должно быть \d{4}\b.В зависимости от входных данных вы также можете рассмотреть возможность добавления еще одной границы слова (\b) в начале.

0 голосов
/ 27 мая 2019

Вот полное решение:

$stringWithYear = '1990 New York Marathon';
$stringNoYear = preg_replace('/(19|20)[0-9][0-9]/', '', $stringWithYear);
echo trim($stringNoYear);  // outputs 'New York Marathon'
0 голосов
/ 18 ноября 2014

Это тоже работает .. preg_match ("/ ^ 1 [0-9] {3} $ /", $ value))

Проверяет год, начиная только с 1. Вы можете изменить в соответствии с вашими требованиями.

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