如何将其写为正则表达式

时间:2014-12-08 18:37:09

标签: python regex

我想帮助将其写成正则表达式,因为我知道基础知识,但不知道如何将其翻译成RegEx。

"command:argname-argvalue:arg2name-arg2val!!END!SENDTO:IP.ADD.RE.SS"

命令:确定我必须处理的操作的特定关键字。必须在那里。

参数:(显示2,但不限于2,尽可能多)argument nameargument value,用连字符分隔。至少一个。

!!END!声明表达式的结尾,必须在那里。

SENDTO:000.000.000.000可选参数,必须匹配SENDTO:,然后匹配有效的IP地址。

然后我想在Python实现中存储命令,参数名称和参数值对,如果包含,则存储用户ip。

我知道这听起来像是家庭作业,但请大家好我现在知道如何做到这一点,我会花费数小时来学习高级RegEx。如果你能帮助我,我很乐意得到你的帮助。

1 个答案:

答案 0 :(得分:1)

以下正则表达式怎么样?

[\w ?]+:\w+-\d+:\w+-\d+!!END!(\\\[)?\w+:\b(?:\d{1,3}\.){3}\d{1,3}\b(\\\])?

Regular expression visualization

Debuggex Demo

这匹配的句子如下:

command:argname-123:arg2name-340234!!END!\[SENDTO:000.000.000.000\]