如何在Python中拆分字符串,仅编辑字母数字并重组
实现字符串拆分、修改字母数字部分后重组
需求说明
将字符串拆分为字母数字段与**非字母数字段(符号、空格等)**组成的列表,仅对字母数字段执行反转操作,最后重新拼接成完整字符串。例如:
- 输入:
An example, 200a, many-times... - 拆分后列表:
['An', ' ', 'example', ', ', '200a', ', ', 'many', '-', 'times', '...'] - 处理后结果:
nA elpmaxe, a002, ynam-semit...
Python 实现代码
import re def process_target_string(raw_str): # 拆分字符串:匹配连续字母数字,或连续非字母数字 split_parts = re.findall(r'\w+|\W+', raw_str) # 遍历处理每个片段:反转字母数字项,其余保持原样 processed_parts = [part[::-1] if part.isalnum() else part for part in split_parts] # 拼接为最终字符串 return ''.join(processed_parts) # 测试示例 test_input = "An example, 200a, many-times..." final_result = process_target_string(test_input) print(final_result) # 输出: nA elpmaxe, a002, ynam-semit...
关键细节说明
- 拆分逻辑:
re.findall(r'\w+|\W+', raw_str)中,\w+匹配1个及以上字母/数字/下划线,\W+匹配1个及以上非字母数字字符,确保拆分后的列表严格交替两类片段。 - 排除下划线:如果不需要把下划线归为字母数字类,可将正则改为
r'[a-zA-Z0-9]+|[^a-zA-Z0-9]+',这样拆分时会单独提取下划线片段。 - 反转操作:利用 Python 字符串切片
[::-1]快速实现反转,isalnum()方法判断片段是否为纯字母数字。
内容的提问来源于stack exchange,提问作者ChicknTurtle
相关产品推荐
相关产品推荐

