我有一个这样的字符串:
1:41 Kill: 1022 2 19: <world> killed Dono da Bola by MOD_FALLING
我需要在killed
之前和第3次之后提取所有字符。在这种情况下:
<world>
以及by
和killed
之间的所有字符Dono da Bola
。
有什么建议吗?
提前谢谢。
答案 0 :(得分:3)
这样做:
:[^:]+?:[^:]+?:\s*(.+?) killed (.+?) by .+
这与您示例中的<world>
和Dono da Bola
相匹配。
说明:
:
匹配:
[^:]+?
匹配非冒号字符:
匹配:
[^:]+?
匹配非冒号字符:
匹配:
\s*
匹配空白(.+?)
匹配非贪婪方式的所有字符(<world>
)killed
匹配killed
及周边空格(.+?)
匹配非贪婪方式的所有字符(Dono da Bola
)by .+
匹配空格,by
,空格和字符串的其余部分。答案 1 :(得分:2)
你的正则表达式是,
^[^:]*:[^:]*:[^:]*:(.*?)killed(.*?)by.*$
Group1包含<world>
(即space<world>space
),而group2包含Dono da Bola
(即space**Dono da Bola**space
)