You could use a negative look-ahead assertion to exclude 41
:
/\b(?!41\b)\d+\b/
This regular expression is to be interpreted as: At any word boundary \b
, if it is not followed by 41\b
((?!41\b)
), match one or more digits that are followed by a word boundary.
Or the same with a negative look-behind assertion:
/\b\d+\b(?<!\b41)/
This regular expression is to be interpreted as: Match one or more digits that are surrounded by word boundaries, but only if the substring at the end of the match is not preceded by \b41
((?<!\b41)
).
Or can even use just basic syntax:
/\b(\d|[0-35-9]\d|\d[02-9]|\d{3,})\b/
This matches only sequences of digits surrounded by word boundaries of either:
- one single digit
- two digits that do not have a
4
at the first position or not a 1
at the second position
- three or more digits