这个问题与这个有关。我想要变量异常,它可以接收字母数字变量列表或空值。
例如,我有一个虚拟函数,它返回可能的字母数字值,这些字母和数字必须保持在一起:
def get_substitutions(word):
if word.lower() == 'h20':
return 'h20'
return None
此外,我还有以下主要功能来获取那些不必分开的可能的字母数字值。如果文本变量(输入)在异常中有一个字母数字单词,那么这将不会被分隔,否则会添加空格:
import re
text='1ST STREET SCHOOL'
exceptions = list()
for word in re.sub(r'[^\w]+', ' ', text, 0, re.IGNORECASE).split():
if get_substitutions(word):
exceptions.extend([word.lower()])
exception_rx = '|'.join(map(re.escape, exceptions))
generic_rx = r'(?<=\d)(?=[^\d\s])|(?<=[^\d\s])(?=\d)'
rx = re.compile(rf'({exception_rx})|{generic_rx}', re.I)
print(rx.sub(lambda x: x.group(1) or " ", text))
但是,当 exception_rx 为空时,我会在每个字母之间留出空格:
1 S T S T R E E T S C H O O L
是否可以在不包含任何 if 语句而仅使用正则表达式语法的情况下处理这种情况?
谢谢你的帮助