php删除特定字符之间的字符

时间:2011-12-04 20:57:08

标签: php regex

我知道如何删除字符串中的特定字符但不确定以下内容:

e.g。字符串:Code [7845] [5589] [554] [4]

我需要删除[]的所有实例以及它们之间的所有内容,然后关闭空格,以便我最终得到:Code

这可能吗?

3 个答案:

答案 0 :(得分:5)

这样做:)

$result = preg_replace('/\[.*?\]|\s*/', '', $subject);

<强>解释

"
\[    # Match the character “[” literally
.     # Match any single character that is not a line break character
   *  # Between zero and unlimited times, as many times as possible, giving back as needed (greedy)
\]    # Match the character “]” literally
"

正如@Felix所指出的,这是一个相当容易的表达。你应该看看here并尝试熟悉你可以使用的各种技术。

答案 1 :(得分:1)

尝试以下方法:

$str = trim(preg_replace('/\[\d+\]/', '', 'your_string_here'));

该函数的第一个参数是正则表达式。您看到的\d与某个数字匹配,后面的+表示您应该匹配至少1个数字。有关preg_replace的更多信息,请Check hereCheck here了解有关正则表达式的更多信息。

答案 2 :(得分:1)

您需要提供有关您的要求的更多详细信息。

假设:

$s = 'Code [7845] [5589] [554] [4]';

如果字符串总是以你所追求的开头,其余部分总是被丢弃,那么这可能是最有效的:

$s = trim(substr($s, 0, strpos($s, '[')));

如果您想保留原始字符串并仅删除数字组,则:

$s = trim(preg_replace('/\[\d+\]/', '', $s));