0

我正在尝试找到获取动态子字符串的最佳方法,但之后替换所有内容。

这就是我想要实现的目标:

{table_telecommunications}

子字符串{table_始终相同,唯一不同的是telecommunications}.

我想获取电信这个词,这样我就可以在 MySQL 表上进行搜索,然后用{table_telecommunications}返回的内容替换。

我想制作一个strpos然后explode等等。

但我想使用正则表达式会更容易,但我没有创建正则表达式的技能。

你能给我最好的方法吗?

编辑:我说正则表达式可能是最好的方法,因为我需要找到这种格式的字符串,但第二部分是可变的,就像{table_*}

4

3 回答 3

1

使用正则表达式。

<?php
    $string = "{table_telecommunications} blabla blabla {table_block}";
    preg_match_all("/\{table_(.+?)\}/is", $string, $matches);
    $substrings = $matches[1];

    print_r($substrings);
?>
于 2013-07-05T16:00:11.463 回答
1
if (preg_match('#table_([^}]+)}#', '{table_telecommunications}', $matches)){
    echo $matches[1];
}

这是一个正则表达式解决方案。你可以对爆炸做同样的事情:

$parts = explode('table_', '{table_telecommunications}');
echo substr($parts[1], 0, -1);
于 2013-07-05T16:01:41.787 回答
0
$input = '{table_telecommunications}';
$table_name = trim(implode('_', array_shift(explode($input, '_'))), '}');

应该很快,不需要正则表达式。

于 2013-07-05T16:01:37.580 回答