我正在尝试找到获取动态子字符串的最佳方法,但在之后替换所有内容。
这就是我想要实现的目标:
{table_telecommunications}
子字符串{table_
始终相同,唯一不同的是telecommunications}
。
我想抓住电信这个词,这样我就可以在MySQL表上搜索,然后用返回的内容替换{table_telecommunications}
。
我想过制作strpos
然后explode
等等。
但我认为使用正则表达式会更容易,但我没有创建正则表达式的技巧。
你能否给我最好的方法呢?
编辑:我说可能正则表达式是最好的方法,因为我需要找到这种格式的字符串,但第二部分是可变的,就像{table_*}
答案 0 :(得分:1)
使用Regex。
<?php
$string = "{table_telecommunications} blabla blabla {table_block}";
preg_match_all("/\{table_(.+?)\}/is", $string, $matches);
$substrings = $matches[1];
print_r($substrings);
?>
答案 1 :(得分:1)
if (preg_match('#table_([^}]+)}#', '{table_telecommunications}', $matches)){
echo $matches[1];
}
这是一个正则表达式的解决方案。爆炸可以做同样的事情:
$parts = explode('table_', '{table_telecommunications}');
echo substr($parts[1], 0, -1);
答案 2 :(得分:0)
$input = '{table_telecommunications}';
$table_name = trim(implode('_', array_shift(explode($input, '_'))), '}');
应该很快,不需要正则表达式。