假设我有一个函数
def f(a):
return a[::-1]
我想将函数 f 应用于字符串上的每个单词。如果字符串仅由空格组成,我可以这样做
>>> s = ' this is a banana '
>>> ' '.join(map(f, s.split(' ')))
' siht si a ananab '
但是,当字符串由多种类型的空格组成时,我该如何做到这一点呢? (例如,\t 和 \n)
例如我想改变
'\t \t this is a\tbanana \n'
to
'\t \t siht si a\tananab \n'
使用正则表达式,re.sub()功能接受一个函数来进行替换。匹配非空白反而:
re.sub(r'[^\s]+', lambda m: f(m.group(0)), s)
该函数传递一个匹配对象; using .group(0)
您可以提取匹配的文本以将其传递给您的函数。返回值用于替换输出字符串中的原始匹配文本。
Demo:
>>> import re
>>> def f(a):
... return a[::-1]
...
>>> s = '\t \t this is a\tbanana \n'
>>> re.sub(r'[^\s]+', lambda m: f(m.group(0)), s)
'\t \t siht si a\tananab \n'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)