<?php $keywords = ["key1", "key2"]; $escaped = implode('|', array_map('preg_quote', $keywords)); $pattern = "/\b(?:" . $escaped . ")\b" . ":?(?:\h+|$)|\b(?!(?:" . $escaped . ")\b)[^\s:]+:/"; $strings = [ "aaa bbb key1 ccc", "aaa bbb key1:xxx key2:", "aaa bbb key1: xxx ccc", "aaa bbb key1 :xxx ccc", "aaa bbb xxx:yyy zzz", "aaa bbb ccc", "aaa bbb key1:aaa ccc ddd", "aaa bbb key2:aaa key1:bbb", "aaa bbb aakey1", "aaa bbb key1aa", "aaa bbb key1aa" ]; foreach ($strings as $s) { preg_match_all($pattern, $s, $matches); if (count($matches[0]) > 0) { foreach ($matches[0] as $m) { echo "Invalid string -->'$m' is invalid format, please check it again..." . PHP_EOL; } } else { echo "Valid string --> '$s'" . PHP_EOL; } }
You have javascript disabled. You will not be able to edit any code.