问题描述
问题
我正在构建一个标点解析器,该解析器需要根据上下文自适应地替换特定的标点。
例如,以与号(&
)为例:
- 如果“&”号被单个字母包围,则应将其删除:
A&B
->AB
- 如果“&”号被单词(两个或两个以上字母)包围,应将其替换为空格:
COME&GO
->COME GO
因此,在应用逻辑之前,必须先确定每个“&”号的上下文。
当前方法
在这里,我使用正则表达式来标识上下文。这是解决这个问题的最好/最快的方法吗?
s = 'L&H COME&GO COME&EAT'
regex = '([a-zA-Z]{2,}&[a-zA-Z]{2,})'
matches = re.findall(regex,s)
for match in matches:
s = match.replace('&',' ').join(s.split(match))
s = s.replace('&','') # 'LH COME GO COME EAT'
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)