2024-09-29 17:22:07 发布
网友
我想把绳子换掉
ID12345678_S3_MPRAGE_ADNI_32Ch_2_98_clone_transform_clone_reg_N3Corrected1_mask_cp_strip_durastripped_N3Corrected_clone_lToads_lesions_seg
与
ID12345678
如何通过regex替换?你知道吗
我试过了-没用。你知道吗
import re re.sub(r'_\w+_\d_\d+_\w+','')
谢谢
我猜第一部分是可变的
import re s = "ID12345678_S3_MPRAGE_ADNI_32Ch_2_98_clone_transform_clone_reg_N3Corrected1_mask_cp_strip_durastripped_N3Corrected_clone_lToads_lesions_seg" print re.sub(r'_.*$', r'', s)
您可以将re.sub与模式[^_]*一起使用,该模式匹配文本中不包含_的任何子字符串,并且作为re.sub替换第一个匹配的模式,您可以在这种情况下使用它:
re.sub
[^_]*
_
>>> s="ID12345678_S3_MPRAGE_ADNI_32Ch_2_98_clone_transform_clone_reg_N3Corrected1_mask_cp_strip_durastripped_N3Corrected_clone_lToads_lesions_seg" >>> import re >>> re.sub(r'([^_]*).*',r'\1',s) 'ID12345678'
但如果它可能出现在字符串中的任何位置,则可以使用re.search如下所示:
re.search
>>> re.search(r'ID\d+',s).group(0) 'ID12345678' >>> s="_S3_MPRAGE_ADNI_ID12345678_32Ch_2_98_clone_transform_clone_reg_N3Corrected1_mask_cp_strip_durastripped_N3Corrected_clone_lToads_lesions_seg" >>> re.search(r'ID\d+',s).group(0) 'ID12345678'
但是如果没有regex,您可以使用split():
split()
>>> s.split('_',1)[0] 'ID12345678'
我猜第一部分是可变的
您可以将
re.sub
与模式[^_]*
一起使用,该模式匹配文本中不包含_
的任何子字符串,并且作为re.sub
替换第一个匹配的模式,您可以在这种情况下使用它:但如果它可能出现在字符串中的任何位置,则可以使用
re.search
如下所示:但是如果没有regex,您可以使用
split()
:相关问题 更多 >
编程相关推荐