你可以用
re.findall(r'(?<![a-z0-9&])[a-z][0-9](?![a-z0-9&])', s, re.I)
见
regex demo
-
(?<![a-z0-9&])
-不是紧跟在ASCII字母、数字或
&
-
[a-z]
-一个ASCII字母(注意
re.I
-
[0-9]
-ASCII数字
-
(?![a-z0-9&])
-不紧跟ASCII字母、数字或
&
.
Python demo
:
import re
rx = r"(?<![a-z0-9&])[a-z][0-9](?![a-z0-9&])"
s = ".A3 S3- D4(SPACE) D5/ E9R E0&"
print(re.findall(rx, s, re.I))
# => ['A3', 'S3', 'D4', 'D5']