如何将拆分并修改后的字符串重新拼接为完整更新字符串?
问题:将修改后的单词片段按原字符串格式拼接
现有一段Python代码,通过正则表达式拆分字符串,提取不含特殊字符的单词并随机将其中一个字符替换为“?”:
import re import random comando = "/bin/cat /etc/passwd" payloadMUT1 = comando payloadMUT3 = re.split(r'/', payloadMUT1) filteredarray = [] for i in payloadMUT3: # 不想让特殊字符参与替换过程 filteredarray.extend(re.findall(r'\b[^\W\d_]+\b', i)) for a in filteredarray: randomIndex = int(random.random() * len(a)) randomChar = a[randomIndex] payloadMUT4 = a.replace(randomChar, '?')
执行后仅能得到修改后的单词片段:
?in ca? et? pa??wd
现在需要将这些片段重新拼接为与原字符串格式一致的完整更新字符串,期望输出为:
/?in/ca? /et?/pa??wd
注:/bin/cat /etc/passwd仅为示例,代码需支持含多斜杠、空格等复杂格式的任意字符串。例如原字符串/bin/find . -type f -iname "*.stuff" -exec egrep -H -i '[a-z]\.[a-z]\.[a-z]' {} \;,处理后需输出/b?n/fi?d . -type f -iname "*.stuff" -exec egrep -H -i '[a-z]\.[a-z]\.[a-z]' {} \;这类格式的结果。
内容的提问来源于stack exchange,提问作者jagghy
相关产品推荐
相关产品推荐

