我的邮件格式如下:
Character Name > <url=fitting:11978:14240;1:31366;1:1447;2:31952;1:14136;1:31378;1:2104;2:3608;4:12058;1:31932;1:2488;6:29001;5::>He Dead :(</url> asdf asefase 351235125
我想过滤掉这个:
:11978:14240;1:31366;1:1447;2:31952;1:14136;1:31378;1:2104;2:3608;4:12058;1:31932;1:2488;6:29001;5::
如果我只是将其限制为数字;
和:
,它还会捕获消息中的数字和消息上的时间戳(偶尔会有另一个属性),这样似乎不起作用正常。
如果数据是输入中的唯一内容,我也希望能够获取数据:
:11978:14240;1:31366;1:1447;2:31952;1:14136;1:31378;1:2104;2:3608;4:12058;1:31932;1:2488;6:29001;5::
有时第一个:
也不存在。
任何想法如何最好地过滤掉这个?我对正则表达式感到有点难过。
编辑:另一个例子
[04:04:55] Morpheus Deathbrew > is this okay? it's cap stable <url=fitting:11978:14240;1:2032;1:31366;1:1447;2:2281;1:31952;1:14136;1:31378;1:2104;1:3608;4:12058;1:2488;6:29001;6::>He Dead :(</url>
我认为大多数解决方案在某些情况下也会匹配时间戳。如果它在聊天消息中有::我也希望能够仍然处理它。也许匹配,如果它有::然后数字?并且::和::?
之间至少有一个;
答案 0 :(得分:2)
像
这样的东西/[\d:;]+::/
[\d:;]+
匹配任何数字:
或;
。 +
量词是贪婪的,会消耗身体中可能出现的::
,直到最后::
::
与上一个::
修改强>
执行格式
/:?(\d+:\d+;)+\d+::/