获得匹配的文字和PHP中的数字

时间:2011-03-16 23:17:17

标签: php regex preg-match

我需要能够从字符串中获得匹配的组合。例如:

$mystring = "This is my text00123 blah blah";
$code = magicRegex( $mystring, "text"[0-9] );
return "you are a wizard - your code is " . $code;

返回:

you are a wizard - your code is text00123

然后,我需要将整数文本分成单独的变量。

4 个答案:

答案 0 :(得分:3)

另一种选择,名为catch:

\b(?<text>\w+?)(?<number>\d+)\b

演示:

$str = "This is my text00123 blah blah";

$_ = null;
preg_match("/\b(?<text>\w+?)(?<number>\d+)\b/",$str,$_);
echo "Text: {$_[text]} -- Number: {$_[number]}";

<强> Working Demo

糟糕,颠倒了争论。 ; P

答案 1 :(得分:2)

这应该这样做:

preg_match("text[0-9]+", $mystring, $matches);
$code = $matches[0];

要分割字符串,您可以使用lookahead and lookbehind

list($text, $number) = preg_split('/(?<=[a-z])(?=\d)/', $code);

答案 2 :(得分:0)

使用preg_match()完成工作。正确的模式很可能是"/(text[0-9]+)/",假设您至少想要一个数字。

答案 3 :(得分:0)

对于第一个,你可以做

$code = preg_replace("/.*(text[0-9]*).*/", "$1", $mystring);