Regex 正则表达式:提取两个特定单词

Regex 正则表达式:提取两个特定单词,regex,Regex,我有这样一个字符串: 1:41死亡:10222 19:MOD_坠落导致多诺·达·博拉死亡 我需要提取第三个字符之前和之后的所有字符:即本例中的,以及by和killed之间的所有字符,即本例中的Dono da Bola 有什么建议吗 提前谢谢您。这样就可以了: :[^:]+?:[^:]+?:\s*(.+?) killed (.+?) by .+ 这与示例中的和Dono da Bola相匹配 说明: :匹配: [^:::+?匹配非冒号字符 :匹配: [^:::+?匹配非冒号字符 :匹配: \s

我有这样一个字符串:

1:41死亡:10222 19:MOD_坠落导致多诺·达·博拉死亡

我需要提取第三个字符之前和之后的所有字符<代码>:即本例中的
,以及
by
killed
之间的所有字符,即本例中的
Dono da Bola

有什么建议吗

提前谢谢您。

这样就可以了:

:[^:]+?:[^:]+?:\s*(.+?) killed (.+?) by .+

这与示例中的
Dono da Bola
相匹配

说明:

  • 匹配
  • [^:::+?
    匹配非冒号字符
  • 匹配
  • [^:::+?
    匹配非冒号字符
  • 匹配
  • \s*
    匹配空白
  • (.+?)
    以非贪婪方式匹配所有字符(
  • killed
    匹配
    killed
    和周围的空格
  • (.+?)
    以非贪婪的方式匹配所有字符(
    Dono da Bola
  • by.+
    匹配空格、
    by
    、空格和字符串的其余部分
    • 这样做可以:

      :[^:]+?:[^:]+?:\s*(.+?) killed (.+?) by .+
      

      这与示例中的
      Dono da Bola
      相匹配

      说明:

      • 匹配
      • [^:::+?
        匹配非冒号字符
      • 匹配
      • [^:::+?
        匹配非冒号字符
      • 匹配
      • \s*
        匹配空白
      • (.+?)
        以非贪婪方式匹配所有字符(
      • killed
        匹配
        killed
        和周围的空格
      • (.+?)
        以非贪婪的方式匹配所有字符(
        Dono da Bola
      • by.+
        匹配空格、
        by
        、空格和字符串的其余部分
        • 您的正则表达式是

          ^[^:]*:[^:]*:[^:]*:(.*?)killed(.*?)by.*$
          

          第1组包含
          (即
          空格
          ),第2组包含
          Dono da Bola
          (即
          空格**Dono da Bola**space

          您的正则表达式是

          ^[^:]*:[^:]*:[^:]*:(.*?)killed(.*?)by.*$
          


          第1组包含
          (即
          空格
          ),第2组包含
          多诺达博拉
          (即
          空格**多诺达博拉**空格

          谢谢!我只需要捕获最后一个字符串,所以我在
          (.+)
          中添加了括号。也谢谢你的解释。谢谢!我只需要捕获最后一个字符串,所以我在
          (.+)
          中添加了括号。也谢谢你的解释。