获取两个不同的开始和结束分隔符之间的所有子字符串
Get all substrings between two different start and ending delimiters
我正在尝试在 Python 3 中获取给定字符串 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>'"><marquee><h1>XSS by Xylitol</h1></marquee>'
print((s.split(start))[1].split(end)[0])
上面的例子是我到目前为止所得到的。但我正在寻找一种更优雅、更稳定的方式来获取所有事件。
因此预期的 return 列表将包含 javascript 代码,如下所示:
a=eval;b=alert;a(b(/XSS/.source));
a=eval;b=alert;a(b(/XSS/.source));
寻找字符串中的模式似乎是正则表达式的一项不错的工作。
这应该 return 一对 <script>
和 </script>
之间的任何列表:
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));']
我正在尝试在 Python 3 中获取给定字符串 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>'"><marquee><h1>XSS by Xylitol</h1></marquee>'
print((s.split(start))[1].split(end)[0])
上面的例子是我到目前为止所得到的。但我正在寻找一种更优雅、更稳定的方式来获取所有事件。
因此预期的 return 列表将包含 javascript 代码,如下所示:
a=eval;b=alert;a(b(/XSS/.source));
a=eval;b=alert;a(b(/XSS/.source));
寻找字符串中的模式似乎是正则表达式的一项不错的工作。
这应该 return 一对 <script>
和 </script>
之间的任何列表:
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));']