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

时间:2011-05-20 14:14:53

标签: php regex string

我创建了一个卷烟和交易卡的数据库。每个集合标题都有一年与之相关联。例如,19432011。年份总是4个字符,但可以在字符串中的任何位置。

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

5 个答案:

答案 0 :(得分:8)

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

这将只读取1900和2000个测距日期。

答案 1 :(得分:5)

试试这个:

/\b\d{4}\b/

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

答案 2 :(得分:1)

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

答案 3 :(得分:0)

这也有效.. preg_match(“/ ^ 1 [0-9] {3} $ /”,$ value))

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

答案 4 :(得分:0)

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

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