获取匹配的文本&;PHP中的数字

获取匹配的文本&;PHP中的数字,php,regex,preg-match,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 然后,我需要将文本从整数分离成单独的变量。这应该可以做到: preg_ma

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

$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
然后,我需要将文本从整数分离成单独的变量。

这应该可以做到:

preg_match("text[0-9]+", $mystring, $matches);
$code = $matches[0];
要拆分字符串,可以使用:

list($text,$number)=preg_split('/(?这应该可以做到:

preg_match("text[0-9]+", $mystring, $matches);
$code = $matches[0];
要拆分字符串,可以使用:


list($text,$number)=preg_split('/(?用于执行作业。正确的模式很可能是
“/(text[0-9]+)/”
假设您至少需要一个数字。

用于执行作业。正确的模式很可能是
“/(text[0-9]+)/”
假设您至少想要一个号码。

作为另一种选择,名为catching:

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

$str=“这是我的文本00123废话”;
$uz=null;
预匹配(“/\b(?\w+)(?\d+)\b/”,$str,$);
echo“Text:{$\[Text]}--Number:{$\[Number]}”;


哎呀,颠倒了参数。;p

作为另一种选择,名为捕捉:

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

$str=“这是我的文本00123废话”;
$uz=null;
预匹配(“/\b(?\w+)(?\d+)\b/”,$str,$);
echo“Text:{$\[Text]}--Number:{$\[Number]}”;


哎呀,把参数颠倒过来了。对于第一个,你可以这样做

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

对于第一个,你可以这样做

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

+1使用命名捕获组是个好主意…比我的解决方案更简单;@FelixKling:是的,如果我第一次把参数按正确的顺序排列就不会更好了。哦!(我想命名匹配对于初学者来说会更进一步。:grin:)谢谢!有什么方法可以匹配实际文本“text”-特别是?我不能只匹配任何text-num组合。对不起,我应该更清楚一些。@DannyGarcia:是的,请查看演示。除非您想单独将其作为捕获?--编辑:您的意思是它必须是作为前缀的文本
文本
?替换
(?\w+?)
在模式中使用
文本
。+1使用命名捕获组的好主意…比我的解决方案更简单;)@FelixKling:是的,如果我第一次把参数按正确的顺序排列就不会更好了。哦!(我想命名匹配对于初学者来说会更进一步。:grin:)谢谢!有什么方法可以匹配实际的文本“text”-特别是?我不能只匹配任何text-num组合。对不起,我应该更清楚一些。@DannyGarcia:是的,请查看演示。除非您想单独将其作为捕获?--编辑:您的意思是它必须是作为前缀的文本
文本
?替换
(?\w+?)
text
的模式。看着你变得越来越花哨,拿出你的…@Brad Christie:你有你的命名组:-P:D;)看着你变得花哨,拿出你的…@Brad Christie:你有你的命名组:-P:D;)