我需要能够从字符串中获得匹配的组合。例如:
$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
然后,我需要将整数文本分成单独的变量。
答案 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);