我知道如何删除字符串中的特定字符但不确定以下内容:
e.g。字符串:Code [7845] [5589] [554] [4]
我需要删除[
和]
的所有实例以及它们之间的所有内容,然后关闭空格,以便我最终得到:Code
这可能吗?
答案 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 here。 Check here了解有关正则表达式的更多信息。
答案 2 :(得分:1)
您需要提供有关您的要求的更多详细信息。
假设:
$s = 'Code [7845] [5589] [554] [4]';
如果字符串总是以你所追求的开头,其余部分总是被丢弃,那么这可能是最有效的:
$s = trim(substr($s, 0, strpos($s, '[')));
如果您想保留原始字符串并仅删除数字组,则:
$s = trim(preg_replace('/\[\d+\]/', '', $s));