[英]Simple preg_replace not working
我在让我的preg_replace为某个字符串工作时遇到麻烦。 这是原始流的外观示例:
“这只是一个{简单|巨大|快速}测试,用于验证{my |您的|他们的}正则表达式”
我想做的是:我想用介于两者之间的一个(第一个)单词替换“ {}”之间的部分。 例如:
“这只是验证我的正则表达式的简单测试”
所以基本上我现在正在做的是:
foreach ($zeilen as $key => $value) {
preg_match_all('/\{(.*?)\}/', $value[15], $arr1);
foreach($arr1[1] as $key2 => $arrValue){
preg_match_all('/(.*?)\|/', $arrValue, $arr2);
}
preg_replace('/\{(.*?)\}/', 'test', $value[15]);
echo '<tr>';
echo '<td>'. $value[15] . '</td>';
echo '</tr>';
}
我在这里使用一个foreach循环,因为那里有我要替换的具有完全相同模式的不同行。 我很确定有更好的方法可以做到这一点,也许有人甚至可以向我建议一个。 我的问题是,preg_replace根本不起作用。 $ value [15]与前面的{}单词完全一样。 没有显示“测试”。 我不是很擅长正则表达式!
非常感谢任何帮助!
您不会在任何地方存储替换的值。 另外,如果在循环外部使用replace,则可能会影响模式的所有出现。 我认为这会有所帮助:
foreach ($zeilen as $key => $value) {
preg_match_all('/\{(.*?)\}/', $value[15], $arr1);
foreach($arr1[1] as $key2 => $arrValue){
preg_match('/(.*?)\|/', $arrValue, $arr2);
$value[15]=str_replace($arr1[0][$key2], $arr2[1], $value[15]);
}
echo '<tr>';
echo '<td>'. $value[15] . '</td>';
echo '</tr>';
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.