我创建了一个卷烟和交易卡的数据库。每个集合标题都有一年与之相关联。例如,1943
或2011
。年份总是4个字符,但可以在字符串中的任何位置。
有人可以帮我创建一个可以在字符串中找到年份的正则表达式。我试过了'/d{4}\b/'
,但它失败了。
答案 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'