我有一個用PHP編寫的系統,它將來自多個數據庫的記錄聚合爲一個。當我這樣做時,我需要檢測每條記錄是否爲ABNORMAL
,如果是,則將其標記爲如此。PHP正則表達式 - 檢測字符串是否包含一個詞但不在另一箇中
要做到這一點,我需要爲preg_match()
的模式,所以如果給定的字符串包含單詞NORMAL
但不ABNORMAL
它會返回false。給出的字符串可能在多行。
我遇到的問題是,這個詞ABNORMAL
包含字NORMAL
。
任何人都可以幫忙嗎?
我有一個用PHP編寫的系統,它將來自多個數據庫的記錄聚合爲一個。當我這樣做時,我需要檢測每條記錄是否爲ABNORMAL
,如果是,則將其標記爲如此。PHP正則表達式 - 檢測字符串是否包含一個詞但不在另一箇中
要做到這一點,我需要爲preg_match()
的模式,所以如果給定的字符串包含單詞NORMAL
但不ABNORMAL
它會返回false。給出的字符串可能在多行。
我遇到的問題是,這個詞ABNORMAL
包含字NORMAL
。
任何人都可以幫忙嗎?
使用Word boundry字符\b
:
preg_match("|\bNORMAL\b|", $subject);
注意,它是區分大小寫,不區分大小寫的版本是這樣的:
preg_match("|\bNORMAL\b|i", $subject);
但如果你可以控制你的數據庫,您可能需要使用0和1(或至少N和A),而不是NORMAL和ABNORMAL。
如果第一次搜索返回「false」,爲什麼不先搜索「ABNORMAL」,然後搜索「NORMAL」? – Blender