You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

移除字符串非字母数字字符编辑后,如何将非字符还原至原位置?

字符串处理(保留原非字母数字位置)实现方案

核心逻辑

用正则将原字符串分割为「纯字母数字片段」和「纯非字母数字片段」交替的列表,仅对字母数字片段执行自定义编辑操作,非字母数字片段原样保留,最后拼接所有片段即可还原位置。

完整代码

import re

def process_string(raw_str, edit_func):
    # 分割为字母数字片段和非字母数字片段交替的列表
    fragments = re.findall(r'([a-zA-Z0-9]+|[^a-zA-Z0-9]+)', raw_str)
    result = []
    for frag in fragments:
        # 字母数字片段执行自定义编辑,非字母数字直接保留
        if frag and frag[0].isalnum():
            result.append(edit_func(frag))
        else:
            result.append(frag)
    return ''.join(result)

# 示例用法
if __name__ == '__main__':
    input_str = "heompuem ykojua'rje awzeklvl."
    # 自定义编辑函数:步长2截取
    def sample_edit(s):
        return s[::2]
    output = process_string(input_str, sample_edit)
    print(output)

效果验证

输入:heompuem ykojua'rje awzeklvl.
输出:hope you're well.

内容的提问来源于stack exchange,提问作者Arno Huyghe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 06:54:06