Python正则表达式-转换字符串
我有以下字符串:Python正则表达式-转换字符串,python,regex,Python,Regex,我有以下字符串: ref:_00D30jPy._50038vQl5C:ref 并希望将以下输出字符串形式化: 5003800000vQl5C 所需的正则表达式操作包括: 删除所有前导字符,直到数字“5” 从第五位开始加5个零 删除结束语“:ref” 我最初使用以下正则表达式来匹配整个字符串: (参考号:(\S+):参考号) 如何修改Python正则表达式以实现上述功能 此任务不需要正则表达式。它可以更简单地使用字符串切片来实现 如果输入字符串保持相同的格式和长度,您只需执行以下操作: s
ref:_00D30jPy._50038vQl5C:ref
并希望将以下输出字符串形式化:
5003800000vQl5C
所需的正则表达式操作包括:
- 删除所有前导字符,直到数字“5”李>
- 从第五位开始加5个零李>
- 删除结束语“:ref”李>
如何修改Python正则表达式以实现上述功能 此任务不需要正则表达式。它可以更简单地使用字符串切片来实现 如果输入字符串保持相同的格式和长度,您只需执行以下操作:
s = 'ref:_00D30jPy._50038vQl5C:ref'
new = '{}00000{}'.format(s[15:20], s[20:-4])
如果存在一些变化,则搜索字符串中的第一个'5'
,并从那里开始切片:
start = s.index('5')
new = '{}00000{}'.format(s[start:start+5], s[start+5:-4])
此任务不需要正则表达式。它可以更简单地使用字符串切片来实现 如果输入字符串保持相同的格式和长度,您只需执行以下操作:
s = 'ref:_00D30jPy._50038vQl5C:ref'
new = '{}00000{}'.format(s[15:20], s[20:-4])
如果存在一些变化,则搜索字符串中的第一个'5'
,并从那里开始切片:
start = s.index('5')
new = '{}00000{}'.format(s[start:start+5], s[start+5:-4])
使用:
重新导入
s='ref:_00D30jPy._50038vQl5C:ref'
result=re.sub(r'^[^5]*(5.{4})(**?:ref$',r'\g00000\g',s,0,re.MULTILINE)
打印(结果)
输出:
5003800000vQl5C
说明:
:从开头匹配除5以外的字符^[^5]*
:捕获组1的前5个字符(5.{4})
:捕获组2的剩余部分,但末尾的(.*):ref$
除外:ref
:将整行替换为\g00000\g
,其中\g00000\g
和\g
分别由第1组和第2组替换\g
重新导入
s='ref:_00D30jPy._50038vQl5C:ref'
result=re.sub(r'^[^5]*(5.{4})(**?:ref$',r'\g00000\g',s,0,re.MULTILINE)
打印(结果)
输出:
5003800000vQl5C
说明:
:从开头匹配除5以外的字符^[^5]*
:捕获组1的前5个字符(5.{4})
:捕获组2的剩余部分,但末尾的(.*):ref$
除外:ref
:将整行替换为\g00000\g
,其中\g00000\g
和\g
分别由第1组和第2组替换\g