获取字符串后的数字php正则表达式
问题描述:
我需要一个正则表达式,它可以实际获得在“ab”和“cr”之后插入的任何数字。例如,我有一个这样的字符串:获取字符串后的数字php正则表达式
rw200-208-ab66
fg200-cr30-201
我需要打印ab66
和cr30
。
我一直在使用strpos
尝试:
if (strpos($part,'ab') !== false) {
$a = explode("ab", $part);
echo 'ab'.$a[1];
}
这并不第二项工作。
答
使用这个表达式:
(?>ab|cr)\d+
$re = "#(?>ab|cr)\d+#";
$str = "rw200-208-ab66\nfg200-cr30-201";
preg_match_all($re, $str, $matches);
print_r($matches[0]);
输出:
Array
(
[0] => ab66
[1] => cr30
)
答
您可以使用\K
放弃最后打印的以前匹配的字符。下面的正则表达式会给你的号码旁边ab
或cr
存在。
(?:ab|cr)\K\d+
要获得同样的字母数,使用
preg_match_all('~(?:ab|cr)\d+~', $str, $match);
+0
或'(?:ab | cr)(\ d +)'使用此正则表达式,然后从组索引1中获取数字。 –
您尝试过什么吗? – Rizier123
已更新的问题。 – Liza