我想从字符串中提取年份。我得到了一个不完整的解决方案。我的字符串总是这样:
请将爵士乐 2014 和 2015+ 的 mpg 发送至我的手机号码
+123456789
我尝试过以下正则表达式;
preg_match_all('!\d{4}+| \d{4}+\W!', $str, $matches);
这将输出以下数组。
Array
(
[0] => Array
(
[0] => 2015
[1] => 2014+
[2] => 1234
[3] => 5678
)
)
我只需要获取带有 + 符号的年份部分(如果有)。即,我只想要这个:
Array
(
[0] => Array
(
[0] => 2015
[1] => 2014+
)
)
Your \d{4}+| \d{4}+\W
模式匹配任意 4 个数字(注意所有格{4}+
量词等于{4}
) 或空格、4 位数字和任何非单词字符。
您可以使用
'~\b\d{4}\b\+?~'
See the 正则表达式演示 https://regex101.com/r/Ndi6PI/1
Details
-
\b
- 字边界
-
\d{4}
- 4 位数字
-
\b
- 另一个单词边界
-
\+?
- 可选(出现 1 次或 0 次)加号。
PHP demo https://ideone.com/dsB23P:
$re = '~\b\d{4}\b\+?~';
$str = 'Please message mpg of jazz 2014 and 2015+ to my mobile number +123456789';
if (preg_match_all($re, $str, $matches)) {
print_r($matches[0]);
}
Output:
Array
(
[0] => 2014
[1] => 2015+
)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)