正则表达式:同时匹配单个字符和/或字符组(字符串)?

I'd like to be able to match zero or more of a list of characters AND/OR match zero or more of a list of strings.

Example: Here is my 12345 test string 123456.

Target: Here is my 45 test string .

So I wish to remove 1, 2, and 3, but only remove 456 if it's a whole string.

I have tried something like /[123]+456+/gs but I know this is wrong.

Any help is appreciated.

/[123]|456/ may be what you want.

Code:

$str = "Here is my 12345 test string 123456.";
$res = preg_replace('/[123]|456/','',$str);
echo $res;

Output:

Here is my 45 test string .

For javascript, this works:

var oldString = 'Here is my 12345 test string 123456.';

var newString = oldString.replace(/[123](456)?/g, '');