这里有两种选择:
代码:(Demo)
$string = "This is the value I would like removed. (ID:17937)";
var_export(preg_replace('/ \(ID:\d+\)/',"",$string));
echo "\n\n";
var_export(strstr($string,' (ID:',true));
输出:(我以前var_export()
表明,该技术是 “干净” 的,并没有给出尾部空格)
'This is the value I would like removed.'
'This is the value I would like removed.'
部分要点:
- 如果您的ID子字符串可以存在于字符串中的任何位置,则Regex是更好/更灵活的解决方案。
- 如果您使用简写范围字符
\d
,则您的正则表达式模式不需要字符类。
- 正则表达式一般来说只能在标准字符串函数不足或者证明对特定情况更有效的情况下使用。
- 如果您的ID子字符串总是出现在字符串的末尾,
strstr()
是一个优雅/完美的函数。
- 我的两种方法都在
ID
之前写了
(空格)以使输出变得干净。
- 你不需要任何
s
或i
修饰你的模式,因为只有s
事项如果使用.
(点)和你的ID
大概总是大写的,所以你并不需要区分大小写的搜索。
''0-9''在一个单引号字符串中?你必须学习编程的基础知识,所以SO不是这样做的(在我看来)。 –