Python 获取两个不同的开始分隔符和结束分隔符之间的所有子字符串
我试图在Python3中获得给定字符串a的所有子字符串的列表,这些子字符串在分隔符x之后开始,在分隔符y之前结束。 我找到的解决方案只能让我第一次出现,但结果必须是所有发生的列表Python 获取两个不同的开始分隔符和结束分隔符之间的所有子字符串,python,html,substring,string-matching,Python,Html,Substring,String Matching,我试图在Python3中获得给定字符串a的所有子字符串的列表,这些子字符串在分隔符x之后开始,在分隔符y之前结束。 我找到的解决方案只能让我第一次出现,但结果必须是所有发生的列表 start = '>' end = '</' s = '<script>a=eval;b=alert;a(b(/XSS/.source));</script><script>a=eval;b=alert;a(b(/XSS/.source));</script>
start = '>'
end = '</'
s = '<script>a=eval;b=alert;a(b(/XSS/.source));</script><script>a=eval;b=alert;a(b(/XSS/.source));</script>'"><marquee><h1>XSS by Xylitol</h1></marquee>'
print((s.split(start))[1].split(end)[0])
对于正则表达式来说,在字符串中寻找模式似乎是一项体面的工作。 这将返回一对
和
之间的任何内容的列表:
这回答了你的问题吗?遗憾的是,没有。。。我实际上是在用美味的汤和咖啡。另一方面,输入字符串不必包含可以解析的完整HTML结构。它们更像是包含XSS Paylods的URL,因此可以包含Javascript。我需要手动提取所有标签的网址。谢谢你,这正是我所希望的!
a=eval;b=alert;a(b(/XSS/.source));
a=eval;b=alert;a(b(/XSS/.source));
import re
pattern = re.compile(r'<script>(.*?)</script>')
s = '<script>a=eval;b=alert;a(b(/XSS/.source));</script><script>a=eval;b=alert;a(b(/XSS/.source));</script>\'"><marquee><h1>XSS by Xylitol</h1></marquee>'
print(pattern.findall(s))
['a=eval;b=alert;a(b(/XSS/.source));', 'a=eval;b=alert;a(b(/XSS/.source));']