Python 有人知道如何从文本中输出给定格式的字符串吗?

Python 有人知道如何从文本中输出给定格式的字符串吗?,python,Python,我刚刚开始学习Python,对于如何从文本中找到给定格式的所有字符串元素感到非常困惑。例如: # USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # # alert tcp $HOME_NET any -> 50.116.1.225 22 (msg:"ET CNC Shadowserver Reported CnC Server Port 22 Group 1"; flow:to_serv

我刚刚开始学习Python,对于如何从文本中找到给定格式的所有字符串元素感到非常困惑。例如:

#  USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
#
#
alert tcp $HOME_NET any -> 50.116.1.225 22 (msg:"ET CNC Shadowserver Reported CnC Server Port 22 Group 1"; flow:to_server; flags:S; reference:url,doc.emergingthreats.net/bin/view/Main/BotCC; reference:url,www.shadowserver.org; threshold: type limit, track by_src, seconds 360, count 1; classtype:trojan-activity; flowbits:set,ET.Evil; flowbits:set,ET.BotccIP; sid:2405000; rev:4483;)

这是整个文本的一小部分,我想做的是从文本中获取所有IP地址,比如50.116.1.225 22。我已经试了很长时间,如果有人能回答我的问题,我将不胜感激

听起来您可能想使用正则表达式。如果我正确理解了这些问题,那么如果您的文本已经是一个名为
警报
的字符串(未指定您的文本是什么),则以下内容很简单,但并不完美:

import re

results = re.findall("\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}", alerts)

for item in results:
    print(item)
输出:

50.116.1.225

听起来您可能想使用正则表达式。如果我正确理解了这些问题,那么如果您的文本已经是一个名为
警报
的字符串(未指定您的文本是什么),则以下内容很简单,但并不完美:

import re

results = re.findall("\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}", alerts)

for item in results:
    print(item)
输出:

50.116.1.225

您可能需要使用正则表达式。这允许您从字符串中提取特定的字符模式

import re

pat = re.compile(r'\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}
                  (?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b')

for ip in re.findall(pat, text):
     print(ip)

您可能需要使用正则表达式。这允许您从字符串中提取特定的字符模式

import re

pat = re.compile(r'\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}
                  (?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b')

for ip in re.findall(pat, text):
     print(ip)

所有的文本行都是那种格式,带有
{text}->IP{bracketed stuff}
(其中
{text}
{bracketed stuff}
基本上与上面的示例行相同?请使用“欢迎使用堆栈溢出”。不要告诉我们您已经尝试过。向我们确切展示您已经尝试过的内容,我们可以给出如何从那里开始的指针。如何使用
regex
匹配IP地址:是的,文本中的所有行都是这种格式,但有些行后面有列表er'->',包含许多IP地址。因此我打算将此文本拆分为“”,然后,我可以检测此拆分列表中的哪个元素采用此格式或是列表。如果是此格式,请将其附加到新列表,如果是列表,请附加每个元素(也是IP)所有的文本行都是这种格式的吗,带有
{text}->IP{bracketed stuff}
(其中
{text}
{bracketed stuff}
基本上与上面的示例行相同?请使用“欢迎使用堆栈溢出”。不要告诉我们您已经尝试过。向我们确切展示您已经尝试过的内容,我们可以给出如何从那里开始的指针。如何使用
regex
匹配IP地址:是的,文本中的所有行都是这种格式,但有些行后面有列表er'->',包含许多IP地址。因此我打算将此文本拆分为“”,然后,我可以检测此拆分列表中的哪个元素采用此格式或是列表。如果是此格式,请将其附加到新列表,如果是列表,请附加每个元素(也是IP)从这个列表到那个新列表。是的!这就是我想要实现的。谢谢你,伙计。是的!这就是我想要实现的。谢谢你,伙计