$re = '/(?<![構])成分(?:(?:亜鉛|交換|共変量|冷媒|分[子布析離]|判別|効果|化合物|単位|原子|収量|同定|含(?:有量|量)|品質|変[動化数]|強度|得点|技術|拡散|振幅|改善|方程式|材料|栄養剤|検定|概念|段階|比較?|波形|活量|流出|添加|測定|濃度|炭酸塩|物質|特[徴性]|相(?:互作用)?|石炭|移動|組成|経腸栄養|線維|置換|行列|表示?|製剤|評価|試験|調(?:合済みの|[整製])|負荷|輸(?:血(?:療法)?|送)|酵素|重合体|間隔?|関数|領域|[体値名層数群計量鎖]))?/m';
$str = '成分、成分亜鉛、成分交換、成分体、成分値、成分共変量、成分冷媒、成分分子、成分分布、成分分析、成分分離、成分判別、成分効果、成分化合物、成分単位、成分原子、成分収量、成分同定、成分名、成分含有量、成分含量、成分品質、成分変動、成分変化、成分変数、成分層、成分強度、成分得点、成分技術、成分拡散、成分振幅、成分改善、成分数、成分方程式、成分材料、成分栄養剤、成分検定、成分概念、成分段階、成分比、成分比較、成分波形、成分活量、成分流出、成分添加、成分測定、成分濃度、成分炭酸塩、成分物質、成分特徴、成分特性、成分相、成分相互作用、成分石炭、成分移動、成分組成、成分経腸栄養、成分線維、成分置換、成分群、成分行列、成分表、成分表示、成分製剤、成分計、成分評価、成分試験、成分調合済みの、成分調整、成分調製、成分負荷、成分輸血、成分輸血療法、成分輸送、成分酵素、成分重合体、成分量、成分鎖、成分間、成分間隔、成分関数、成分領域
構成分量 -- マッチしたくない
構成分子 -- マッチしたくない
仮の構成分は払って欲しい -- マッチしたくない
この成分ならよい -- マッチしたい
';
preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0);
// Print the entire match result
var_dump($matches);
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for PHP, please visit: http://php.net/manual/en/ref.pcre.php