我需要一个正则表达式,它实际上可以获得在“ab”和“cr”之后插入的任何数字。例如,我有一个这样的字符串:
rw200-208-ab66
fg200-cr30-201
我需要打印ab66
和cr30
。
我尝试过使用strpos
:
if (strpos($part,'ab') !== false) {
$a = explode("ab", $part);
echo 'ab'.$a[1];
}
这对第二项不起作用。
答案 0 :(得分:3)
您可以使用marshaller
丢弃之前匹配的字符,以便在决赛中打印。以下正则表达式会为您提供\K
旁边的数字
或ab
。
cr
要使用字母来获取数字,请使用
(?:ab|cr)\K\d+
答案 1 :(得分:2)
使用此正则表达式:
(?>ab|cr)\d+
请参阅IDEONE demo:
$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
)