获取文本中所有出现的类似字符串(在模式后面)

时间:2014-09-29 13:35:08

标签: regex foreach str-replace preg-match-all

我有一个巨大的文字,其中包含遵循该模式的字符串:

{}的text1 {}文本2 ... {text10}

"文本"将保持不变,但后来的数字将始终增加。我无法预测它的最大值。

直到今天我才用过这个:

preg_match_all("{text.}", $content, $occurrences);
foreach ($occurrences[0] as $occurrence){
    $content = str_replace("{" . $occurrence . "}", "test", $content);
}

直到今天我还注意到,如果我必须替换多个数字,preg_match_all规则不起作用,一切正常。这意味着它基本上会检测到" text2"但它不会发现" text10"。

我应该如何改变这个preg_match规则来检测" text"之后的任何数字?

谢谢, 波格丹

1 个答案:

答案 0 :(得分:1)

preg_match_all("{text\d+}", $content, $occurrences);

preg_match_all("{text.+}", $content, $occurrences);

试试这个。 .只匹配一个字符。这就是为什么text2匹配而不是text10,因为text之后有2个字符。