我有一个巨大的文字,其中包含遵循该模式的字符串:
{}的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"之后的任何数字?
谢谢, 波格丹
答案 0 :(得分:1)
preg_match_all("{text\d+}", $content, $occurrences);
或
preg_match_all("{text.+}", $content, $occurrences);
试试这个。 .
只匹配一个字符。这就是为什么text2
匹配而不是text10
,因为text
之后有2个字符。