Python如何实现:含下划线取首下划线后内容,无则返回原字符串
实现指定的字符串提取逻辑
方法一:利用str.split()的maxsplit参数
给split()方法传入maxsplit=1,会将字符串按第一个下划线分割成最多两部分。之后根据分割结果的长度判断:存在下划线则取第二部分,否则返回原字符串。
def extract_after_first_underscore(s): parts = s.split('_', 1) return parts[1] if len(parts) > 1 else parts[0] # 验证用例 print(extract_after_first_underscore('testing_abc')) # 输出: abc print(extract_after_first_underscore('xyz')) # 输出: xyz print(extract_after_first_underscore('testing_abc_bbc')) # 输出: abc_bbc
方法二:使用str.partition()(更简洁)
partition()方法会返回一个三元组(前缀, 分隔符, 后缀):
- 若字符串包含下划线,分隔符为
_,后缀就是第一个下划线后的所有内容; - 若不包含下划线,分隔符为空字符串,此时直接返回原字符串即可。
def extract_after_first_underscore(s): _, sep, suffix = s.partition('_') return suffix if sep else s # 验证用例 print(extract_after_first_underscore('testing_abc')) # 输出: abc print(extract_after_first_underscore('xyz')) # 输出: xyz print(extract_after_first_underscore('testing_abc_bbc')) # 输出: abc_bbc
内容的提问来源于stack exchange,提问作者nmr
相关产品推荐
相关产品推荐

