Deleting certain integers from string list
SequenceReplace
:
SequenceReplace[lis, {"a", _?(StringMatchQ[NumberString])} :> "a"]
{"a", "b", "2", "c", "3", "a", "d", "4"}
Also
SequenceReplace[lis, {"a", _?(IntegerQ @* ToExpression)} :> "a"]
{"a", "b", "2", "c", "3", "a", "d", "4"}
Split
+ ReplaceAll
Flatten[Split[lis, # == "a" &] /. {"a", _?(IntegerQ@*ToExpression) } :> "a"]
{"a", "b", "2", "c", "3", "a", "d", "4"}
The following works for your example. But I am not sure that it will work for you if your example is not descriptive enough for some more general situation you have in mind.
lis = {"a", "1", "b", "2", "c", "3", "a", "d", "4"};
Flatten[Partition[lis, UpTo[2]] /. {"a", "1"} -> "a"]
{"a", "b", "2", "c", "3", "a", "d", "4"}