带$ regex的前缀字母

时间:2015-01-22 09:01:57

标签: python regex shell

我想在字符串中添加$前缀所有字母。

有人可以告诉我如何使用正则表达式吗?

示例:如果str = 'he123',则输出应为$h$e123

我是正则表达式的初学者。我尝试了这个但是没有工作:

re.sub('[a-zA-Z]+', '$'str, str)

2 个答案:

答案 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'