我想在字符串中添加$
前缀所有字母。
有人可以告诉我如何使用正则表达式吗?
示例:如果str = 'he123'
,则输出应为$h$e123
。
我是正则表达式的初学者。我尝试了这个但是没有工作:
re.sub('[a-zA-Z]+', '$'str, str)
答案 0 :(得分:2)
只需删除字符类后的+
,然后将字符类放入捕获组。 +
贪婪地匹配一个或多个字符。
>>> re.sub(r'([a-zA-Z])', r'$\1', 'he123')
'$h$e123'
OR
使用积极的先行断言。
>>> re.sub(r'(?=[a-zA-Z])', r'$', 'he123')
'$h$e123'
答案 1 :(得分:2)
非正则表达式解决方案:
''.join(['$' + c if c.isalpha() else c for c in str])
>>> str = 'he12th'
>>> ''.join(['$' + c if c.isalpha() else c for c in str])
'$h$e12$t$h'