正则表达式从字符串 PHP 中删除年份


Regex to remove year from a string PHP

我创建了一个香烟和集换式卡的数据库。每个系列标题都有一个与之关联的年份。例如,19432011 。年份的长度始终为 4 个字符,但可以是字符串中的任何位置。

有人可以帮我创建一个正则表达式,可以在字符串中找到年份。我尝试了'/d{4}'b/'但它失败了。

(19|20)[0-9][0-9]

这将只在1900年和2000年的范围日期中读取。

试试这个:

/'b'd{4}'b/

它将匹配嵌入非单词的 4 位数字

d{4}'b将在单词边界处匹配四个d。您忘记了字符类中的反斜杠:应该是'd{4}'b。根据输入数据,您可能还需要考虑在开头添加另一个单词边界('b)。

这是一个完整的解决方案:

$stringWithYear = '1990 New York Marathon';
$stringNoYear = preg_replace('/(19|20)[0-9][0-9]/', '', $stringWithYear);
echo trim($stringNoYear);  // outputs 'New York Marathon'
这也

行得通。preg_match("/^1[0-9]{3}$/",$value))

检查仅从 1 开始的年份。您可以根据需要进行更改。