這裏有兩種選擇:
代碼:(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不是這樣做的(在我看來)。 –