我从包含野生的png文件获得了大量随机字符串。
离。
"2016.png random characters vjifj903%.png unpredictable characters"
我想用前缀myserver.com/
替换所有.png文件,所以
"myserver.com/2016.png random characters myserver.com/vjifj903%.png unpredictable characters"
有没有办法做到这一点,以便它不区分大小写并且能够执行此功能?
我试过
str.replace(".png","myserver.com/");
但我不知道如何将其显示为前缀,这只会添加一个后缀。
答案 0 :(得分:1)
(?<=\b)[^\s]+?\.png
myserver.com/\0
import re
p = re.compile(ur'(?<=\b)[^\s]+?\.png')
test_str = u"2016.png random characters vjifj903%.png unpredictable characters"
subst = u"myserver.com/\0"
result = re.sub(p, subst, test_str)
这使得result
变量:
myserver.com/2016.png random characters myserver.com/vjifj903%.png unpredictable characters
https://regex101.com/r/pJ0oS8/4
找到单词边界,然后找到前面的非空白字符,直到.png
。然后在比赛前替换myserver.com/
。
答案 1 :(得分:0)
如果你在文件名中没有空格,这将有效:
from __future__ import print_function
import re
prefix = 'myserver.com/'
s = "2016.png random characters vjifj903%.png unpredictable characters"
print(re.sub(r'([^\s]*\.png)', prefix + r'\1', s, re.I))
输出:
myserver.com/2016.png random characters myserver.com/vjifj903%.png unpredictable characters
答案 2 :(得分:0)
您可以使用生成器:
>>> string = "2016.png random characters vjifj903%.png unpredictable characters"
>>> print(" ".join(("myserver.com/" * word.endswith(".png")) + word for word in string.split())
myserver.com/2016.png random characters myserver.com/vjifj903%.png unpredictable characters
如果你想在字符串中分隔单词,那么它更简单:
>>> string = "2016.png random characters vjifj903%.png unpredictable characters"
>>> print [("myserver.com/" * word.endswith(".png")) + word for word in string.split()]
['myserver.com/2016.png', 'random', 'characters', 'myserver.com/vjifj903%.png', 'unpredictable', 'characters']